оптимизация tweenlite для приложения iPhone Flash - PullRequest
1 голос
/ 04 марта 2011

У меня есть заставка с растровым изображением 250x130, которую я хочу постепенно увеличивать и уменьшать. Я использую tweenlite, и он отлично смотрится на ПК, но на iphone, он выглядит как 1 или 2 кадра в секунду, очень медленно. Есть только 2 текстовых поля и это анимированное растровое изображение. Фильм настроен на по умолчанию 24 кадра в секунду. код

пакет {

import flash.display.MovieClip;
import com.greensock.TweenLite;
import com.greensock.easing.*;

public class intro extends MovieClip {


    public function intro() {
        fadesIn();
    }

    function fadesOut():void{ if (this.visible) TweenLite.to(mc, 4, {delay:1,ease:Cubic.easeInOut, alpha:0,onComplete:fadesIn});}
    function fadesIn():void{ if (this.visible) TweenLite.to(mc, 4, {delay:1,ease:Cubic.easeInOut, alpha:1,onComplete:fadesOut});}

}

}

рендеринг iphone - это графический процессор У меня есть stage.quality = StageQuality.LOW; на 1-м кадре.

спасибо

Ответы [ 2 ]

1 голос
/ 21 августа 2013

Использование Starling (http://gamua.com/starling/) иногда является единственным способом получить хорошую производительность на мобильных устройствах, поскольку он полностью использует графический процессор на устройствах.

С сайта Adobe (http://help.adobe.com/en_US/as3/mobile/WS901d38e593cd1bac-3d719af412b2b394529-8000.html):

Включите аппаратное ускорение графики в приложении AIR, включив gpu в дескриптор приложения (или используйте direct для использования Stage3D). Нельзя изменять режимы рендеринга во время выполнения. На настольных компьютерах использование gpu откатится к direct.

Примечание. Чтобы использовать ускорение графического процессора для Flash-содержимого с AIR для мобильных платформ, Adobe рекомендует использовать renderMode = "direct" (то есть Stage3D), а не renderMode = "gpu". Adobe официально поддерживает и рекомендуетследующие платформы на основе Stage3D: Starling (2D) и Away3D (3D). Для получения дополнительной информации о Stage3D и Starling / Away3D см. http://gaming.adobe.com/getstarted/.

Стоит также отметить, что cacheAsBitmap не работает, еслиобъект находится в альфа-формате.

http://www.republicofcode.com/tutorials/flash/as3cacheasbitmap/

Следует отметить, что cacheAsBitmap property очень ограничен и будет использовать растровое изображение, кэшированное только тогда, когда объект статичен или перемещается вертикально или горизонтально по сцене.Если вы попытаетесь повернуть объект, изменить его масштаб, изменить его альфа-свойство или попытаться сделать с ним что-то еще, кроме изменения его формы, игроку придется пересчитать форму вектора, а затем снова нарисовать версию для каждого растрового изображения.единственный шаг в преобразовании.Если вы примените cacheAsBitmap к объекту, который постоянно вращается или анимируется в любом случае, кроме изменения его свойства x или y, процесс будет потреблять больше вычислительной мощности, чем исходная векторная графика, поскольку для каждого из них придется рассчитывать не только векторшаг в анимации, но растровое изображение также должно быть нарисовано для каждого шага в анимации, что заставляет систему удвоить работу!

1 голос
/ 27 апреля 2011

Производительность немного отличается для iOS кросс-скомпилированного приложения, чем для родного приложения Flash, из-за различий в том, как они отображают графику и обрабатывают временную шкалу.

Вот некоторые дополнительные сведения для оптимизации кросс-компиляции iOS.

http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html

http://www.yeahbutisitflash.com/?p=986

В основном это включает кэширование растровых изображений, точное и эффективное измерение границ (особенно важно при использовании Flex) и обеспечение максимально возможной оптимизации вашего ActionScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...