|
|
|||||
Тормоза при wmode=direct
Добрый день!
Делаю барабаны для слот-автомата. Двигаю сверху вниз длинную картинку. Рассчитываю на 50fps. Когда встраиваю флеш с параметром wmode=direct - fps иногда слетает до 30, иногда нет. Что самое интересное, с параметром wmode=window (он же по умолчанию), тормозов нет - все очень шустренько. Везде в том числе на официальном хелпе от Adobe написано, что direct - самый, так сказать, верняк вариант для производительности. Как объяснить тормоза в мое ситуации? Я бы плюнул и поставил window, да вот как быть с тем, что если включить fullscreen - wmode автоматом становится direct и начинаются тормоза? Помогите, пожалуйста, разобраться, где я накосячил? |
|
|||||
Lorem ipsum
|
Direct необходим только для приложений на Stage3D.
__________________
Поймай яблоко 2! |
|
|||||
Lorem ipsum
|
А можно узнать, что конкретно стоит за словами "включить fullscreen" и "wmode автоматом становится direct"?
__________________
Поймай яблоко 2! |
|
|||||
Тут сказано
Цитата:
Добавлено через 1 минуту Простите, забыл добавить: Включить fullscreen - stage.displayState = StageDisplayState.FULL_SCREEN |
|
|||||
Lorem ipsum
|
Очевидно, нужно оптимизировать отображение, размытия какие-то, стараться не делать "длинных изображений" и т.д.
Других вариантов нет. P.S. Зачем барабанам больше 30 fps?
__________________
Поймай яблоко 2! |
|
|||||
30 маловато, не доставляет...
Спасибо за ответы, буду думать! Добавлено через 9 минут А вообще, просто из интереса решил эту тему поднять. Direct дает возможность использовать аппаратное ускорение, и в хепле от адоба ничего не сказано о том, что его рекомендуется использовать ТОЛЬКО для Stage3D. Напротив, они пишут что этот режим, просто, дает максимальную производительность. Понятно, наверняка в моем случае есть что оптимизировать-пересматривать. Но факт есть факт: в direct - тормоза, в window - все путем. Получается, Adobe врут? |
|
|||||
Lorem ipsum
|
Не, там вроде сказано, что он дает возможность использовать аппаратное воспроизведение видео и Stage3D. Сам по себе wmode direct больше ничего особого в себе не несет. Он скорее всего устроен как gpu + Stage3D + StageVideo. И вот тут стоит понимать разницу между режимами gpu и группой режимов cpu (window, opaque, transparent).
Рекомендуется использовать wmode gpu, если в приложении преобладает растровая графика. Если же больше графики векторной, то следует ставить режимы window, opaque (если требуется пошаманить с z-index на страничке) или transparent (только если таки никак не получается избежать использования прозрачной флешки). Говоря другими словами, если у тебя флешка в основном векторная, то wmode gpu (direct) снижает производительность. Если же у тебя и так растр — шерше ля ботлнек
__________________
Поймай яблоко 2! Последний раз редактировалось Zebestov; 01.04.2015 в 20:05. |
|
|||||
Да-да, у меня растр. Действительно, сократив свою длиннющую картинку в 5 раз - стабильнее стало держать 50fps при direct'e. Придется, видимо, что-то мутить с дабл буферами или еще чем. А так надеялся, что просто надо где-то галочку поставить... (:
|
|
|||||
С позволения, я все же воскрешу тему. Новые обстоятельства...
Максимально оптимизировав свои барабаны тормоза все равно остались. При чем очень заметна разница между официальным адобовским плеером и хромовским PepperFlash. То есть, в Firefox, в официальном плеере, в режиме Direct - работает стабильно и плавно. В хроме, во встроенном PepperFlash - в 2 раза медленнее. Если поставить wmode=window - в обоих случаях тормозов не заметно. Что я заметил изучая аналоги... Вот есть такая игруха: https://games.hollandpowergaming.com...=supergame_prd В которую босс меня тыкнул носом сказав: "хочу что бы летало быстро как у них". И таки изучив код страницы я заметил, что они определяют wmode в зависимости от броузера. Отрывок из кода: function getWmode() { var wmode = gup("wmode"); if (!wmode) { wmode = "direct"; if (navigator.appName == 'Microsoft Internet Explorer') wmode = "window"; else if (window.chrome) wmode = "window"; } return wmode; } По моим наблюдениям - все сходится. Я бы не проч добавить такое же условие для нашего сайта. Но объясняя свою идею, хочется это чем-то аргументировать и не выглядеть глупо. (: |
Часовой пояс GMT +4, время: 09:36. |
|
« Предыдущая тема | Следующая тема » |
|
|