ПредишенСледващото

Използване на cacheAsBitmap да ускори флаш-приложения

Може би всички онези, които са се опитали ръката си в Flash, изправени пред необходимостта да се ускори предоставянето на обекти на сцената флаш филм. Един особено остър проблем за векторни чертежи, които само по себе си е много трудна. Освен това, векторни изображения често съдържат наклони и прозрачност. Всичко това се отразява негативно на работата на Flash Player все още.

Определени проблем изпълнение се опита да реши по различни начини. Един от начините е да се кеш обекти със свойствата на стандарт cacheAsBitmap. Това прави този имот точно както е посочено в неговото заглавие - спестява на обекта под формата на представяне на растерни и с модела на флаш-плейър е по-бързо, отколкото с векторни изображения. Тази функция е достъпна в ActionScript 3.0 обекти, които наследяват от DisplayObject (виж яслите "списък дисплей в ActionScript 3.0»). И това е невероятно лесна за употреба.

ActionScript 3.0 код:

внос flash.display.Sprite; Var дух: Sprite = нов Sprite (); sprite.graphics.beginFill (0x000000,1); sprite.graphics.drawCircle (200,200,100); sprite.graphics.endFill (); addChild (дух); / * Включва кеширане * / sprite.cacheAsBitmap = вярно; / * Проверете * / следа (sprite.cacheAsBitmap);

Както можете да видите, за да се даде възможност за кеширане, можете просто да възложи Булева cacheAsBitmap имота да е вярно.

Това, което прави използването cacheAsBitmap на практика? Нека разгледаме един пример.

Демонстрация на cacheAsBitmap:

В този пример, има флаш ролка 1000 ия анимационен MovieClip-S. Освен това, тези muviki не само вектор, но все повече и имат запълване градиент, и прозрачност. Естествено, ролкови спирачки. В горния ляв ъгъл на това видео, под тезгяха, има ключ. С този ключ е възможно да се включите / изключите кеширане на видео клипове. По подразбиране е фалшив - кеширане е забранено. И сега се даде възможност за кеширане. Какво се е променило?

В действителност, дори и без тезгяха е ясно, че с включените cacheAsBitmap нашия пример е станал много по-бързо. QED.

[!] Що се отнася до гишето в горния ляв ъгъл на видеото, тя е взета от урока "производителност на приложенията флаш-наблюдение." Също така съществува разчетени всички негови показатели.

И всичко щеше да е добре, ако не беше заради ограниченията за cacheAsBitmap на употреба. И има няколко ограничения:

- ограничение на размерите на обекти;

В Flash Player, има ограничения за максималната ширина и височина на растерна графика. Тези ограничения са различни за различните версии на Flash Player. Въпреки това, и допустим размер обикновено е достатъчно, за да излишък.

- ограничаване на манипулация на кешираните обекти;

съдържание Vector кеширана обект, за да остане непроменена. Ако това не се промени, а след това се прекрои растерни изображение на обекта. Това не само ускорява изпълнението на флаш видео, а по-скоро една изключително негативно влияние върху производителността. Имайте предвид, че в горния пример, обектите се променят позицията си по отношение на координатната система, но тяхната вътрешна съдържание остава непроменен.

- грешки могат да възникнат поради липса на памет за кеширане.

Cam все още не е изпълнено, но това се посочва в помощ. Въпреки това е ясно, препоръка, предвид това, че изображението на растерна графика, то обикновено отнема повече памет, отколкото вектор.

[!] Имайте предвид, че Flash Player автоматично кешира обектите, към които се прилагат филтри (и толкова дълго, тъй като тя се прилага за филтрите).

[!] За какво страхотни ефекти могат да се получат чрез прилагане на cacheAsBitmap да маската, посочени в статията "Маската градиент означава, ActionScript 3.0».

Свързани статии

Подкрепете проекта - споделете линка, благодаря!