Цитата:
|
Сообщение от MerlinTwi
Если я правильно понял задачу, то я бы сделал так:
 Код:
...............
function onDraw(e:Event):void {
var n:int = 200; // выводим 200 точек
while (n-- && ar.length) {
// берем следующую точку
var pixel:Point = ar.pop();
// рисуем ее
trace("Draw:", pixel.x, pixel.y);
resultBitmapData.setPixel(pixel.x, pixel.y, myBitmapData.getPixel(pixel.x, pixel.y));
}
}
|
кхм тоже правильно, но не рационально... именно в этой части

Код:
var n:int = 200; // выводим 200 точек
while (n-- && ar.length) {
// берем следующую точку
var pixel:Point = ar.pop();
лишний поп, лишнее вычисление ar.length, ......
в идеале для скорости было красиво просто хранить начальный индекс в массиве и количество выводимых точек.

Код:
var currentPos : number = 0;
........
var countPoint : number = ((currentPos+200)> ar.length) ? 200 : ar.length-currentPos
var pixel:Point;
while (countPoint >0) {
pixel = ar[countPoint + currentPos ];
trace("Draw:", pixel.x, pixel.y);
resultBitmapData.setPixel(pixel.x, pixel.y, myBitmapData.getPixel(pixel.x, pixel.y));
countPoint--;
}
currentPos+=countPoint ;
if (currentPos>ar.length) trace ("the end");
)
ну а в самом конце просто бахать наш массив и все