Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.02.2012, 09:10
Black Soviet вне форума Посмотреть профиль Отправить личное сообщение для Black Soviet Найти все сообщения от Black Soviet
  № 1  
Ответить с цитированием
Black Soviet
 
Аватар для Black Soviet

Регистрация: Nov 2011
Сообщений: 41
anmelegov

Дружище, ну я ж не наркоман, и не первый день на этом свете живу. Анимацию явно дёргает, об этом пишу я , пишут другие пользователи, пишут в других темах, пишут на зарубежных форумах по флешу. Я понимаю что проблема специфичная, и не у всех она проявляется, но я все-таки хочу её решить.

Старый 02.02.2012, 13:01
Black Soviet вне форума Посмотреть профиль Отправить личное сообщение для Black Soviet Найти все сообщения от Black Soviet
  № 2  
Ответить с цитированием
Black Soviet
 
Аватар для Black Soviet

Регистрация: Nov 2011
Сообщений: 41
maxkar
Огромное спасибо за развернутый ответ.
Итак кое-какие результаты есть.

Выставление в хтмл-коде параметра "wmode=direct" сработало, и шар ПЕРЕСТАЛ ДЕРГАТЬСЯ и МЕРЦАТЬ. Но я искренне надеялся что установив в параметре публикации - прямое аппаратное ускорение он мне скомпилирует swf без багов. Правильно ли я понимаю, что никак кроме размещения swf в html-странице с включенным параметром wmode=direct, нельзя включить ускорение ? Меня интересует именно swf, проигрываемый в Flash Player.

Дело в том, что весьма огорчительно было увидеть коды страницы различных игровых флеш-сайтов, и увидеть что ВСЕ динамичные и сложные игры имеют параметр "wmode = window", то есть аппаратного ускорения не включено вообще.

Как вы правильно сказали, двойная буферизация мне не помогла. Изменился лишь характер артефактов. Где-то 4 секунды шар вертится плавно, потом секунду его жестко раздирает и колбасит.

Старый 02.02.2012, 18:47
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 3  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Вывод через overlay и с vsync? В самой флешке никак. И здесь тоже все более-менее причины понятны. Например, вывод через overlay не совместим с wmode="transparent". Оверлей буквально выводит область видеопамяти вместо другого прямоугольника. Т.е. никакой "прозрачности" не получится - у плеера при рендеринге просто нет нужного прямоугольника (и верхних слоев на веб-странице). Это должен делать браузер.

Таким образом, остаются только варианты, когда весь "прямоугольник" выводит сам плеер. Это режимы direct и window. С direct все понятно, он работает правильно. С window - не совсем. Например, здесь пишут, что вывод ведется через GDI в windows (создается отдельное окно и т.п.). Вполне вероятно, там используется стандартная "оконная" отрисовка (прямоугольная область пикселей) и без двойной буферизации. И не факт, что в GDI вообще можно делать "двойную буферизацию" при выводе на экран. Чисто теоретически, плеер мог бы создавать там directx overlay surface и рисовать туда. Но судя по всему он этого не делает. Так что если флажок "аппаратное ускорение" при публикации не помог, то больше ничего плеер включить двойную буферизацию не заставит.

На игровых сайтах можно посмотреть, может быть, они дают управлять параметром wmode, а window там стоит по-умолчанию. Но, конечно, далеко не все они будут поддерживать возможность такой настройки.

Старый 05.02.2012, 12:57
Black Soviet вне форума Посмотреть профиль Отправить личное сообщение для Black Soviet Найти все сообщения от Black Soviet
  № 4  
Ответить с цитированием
Black Soviet
 
Аватар для Black Soviet

Регистрация: Nov 2011
Сообщений: 41
Кое-какие положительные результаты всё же есть которые помогли минимизировать эффект "мерцания". Итак в ходе различных тестов было замечено и подмечено:

1) При маленьких скоростях объекта мерцания почти нет.
2) При маленьком размере картинки мерцания почти нет.
3) Наличие контрастного фона (белые объекты на черном фоне) увеличивают, по-крайней мере визуально, мерцание.
2) Мерцание усиливается если у объекта в первую очередь большая горизонтальная скорость. На вертикальных заходах мерцание не так сильно. (проверено на эллиптических траекториях)
3) Все картинки обязательно в растр и кэшируем.
4) В выводе графики используем copyPixels если есть альфа-канал(прозрачность), и используем beginBitmapFill если альфа не используется.
5) Для BitmapData рекомендуется lock() и unlock()
6) Если религия не позволяет использовать EnterFrame, и используем вместо него Timer, то не забываем про updateAfterEvent()
7) И самое главное, при публикации в html выставляйте параметр wmode=direct, и тогда мерцания не будет вообще.

Если кто еще может посоветовать какие-нить приёмы по улучшению отображения графики, то делимся.


Последний раз редактировалось Black Soviet; 05.02.2012 в 13:14.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
rendering , wmode
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.