вторник, 28 апреля 2009 г.

cacheAsBitmap для AS2 ручками. AS2

Давно, работая с AS3, убедился, что очень эффективно кэшировать статические мувики вручную - сохранять снимок мувика в BitmapData и заменять на сцене сложный клип на полученное растровое изображение. Выигрыш производительности просто неимоверный! Я даже сделал специальный механизм, который сканировал сцену на предмет таких клипов (помеченных особым именем) и кэшировал их таким способом. Причем, штатный cacheAsBitmap работает совершенно отвратительно и против ручного метода, просто курит в затяг.

И вот, на днях, доделывая одну ужасно тормозную заставку на flash 8, решил применить это дело и для AS2. Вот простейший код, который вставляется во фрейм мувика, на котором мувик надо закешировать (правда внешний контроль над ним будет потерян, но это уже другая история):
import flash.display.BitmapData;
stop();
var bitmap:BitmapData = new BitmapData(this._width,this._height,false);
bitmap.draw(this);
this._parent.attachBitmap(bitmap,this.getDepth());
this.unloadMovie();