Я хочу сохранить данные растрового изображения из массива _sampleTile в массиве, но мне было интересно, как увеличить производительность. Если я сделаю так вот так:Как избежать создания нового объекта bitmapData в цикле в AS3?
var _sampleTile:BitmapData;
var _arrayLenght:int = _tileClipArray.length;
for(var i:int = 0; i < _arrayLenght; ++i){
_sampleTile = new BitmapData(65, 65, false);
_sampleTile.draw(_tileClipArray[int(i)]);
_tileBitmapDataArray[i] = _sampleTile;
}
Тогда это сделало бы слишком много строительной работы в петле, не так ли? Но если я, как ниже:
var _sampleTile:BitmapData = new BitmapData(65, 65, false);
var _arrayLenght:int = _tileClipArray.length;
for(var i:int = 0; i < _arrayLenght; ++i){
_sampleTile.fillRect(_sourceRectangle, 0x00FFFFFF);
_sampleTile.draw(_tileClipArray[int(i)]);
_tileBitmapDataArray[i] = _sampleTile.clone();
}
В .clone() возвращает новый объект BitmapData поэтому в основном результат тот же, верно? Во втором примере, если мы заменим _sampleTile.clone() на _sampleTile - можно ли как-то не хранить в массиве ссылку на _sampleTile, а получить фактические bitmapData из _simpleTile?
Знаете ли вы какой-то пакет бенчмаркинга для as3, где я могу тестировать функции? как быстро они бегут? Я хочу сравнить clone() с новым. – Rihards
Попробуйте следующее: http://gskinner.com/blog/archives/2010/02/performancetest.html – Cay