![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Да вот нет. copyPixels быстрее, чем поменять координату.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Для прокрутки фона я использовал сдвиг матрицы bitmapData по координате X
__________________
adobe AS3 manual |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Psycho Tiger
Тоже 4 мс. Нет, я конечно не знаю, может я что то не так делаю?
Последний раз редактировалось PlutDem; 18.04.2012 в 12:36. |
|
|||||
|
Единичный тест ничего не стоит. Тесты нужно проводить пачками, и по клику, когда FP уже "разогрелся".
К тому же неплохо, правда? Там просто координату подвинули за 4 мс, а тут создали новый Rectangle, новый Point, ещё и перерисовали - и тоже 4.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
???
Под перемещением картинки я имел ввиду изменение x и y координат DisplayObject. Сколько бы вы не "грели" FP scroll() и copyPixels() не станут работать в 400 раз быстрее. |
|
|||||
|
[+4 07.04.12]
[+1 20.01.12] Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
|
зачем вообще таймер я не понимаю... не проще сделать override public function set x(value:Number):void { и дальше тот код с прямоугольником и копиПикселс и просто тупо двигать?
|
|
|||||
|
Цитата:
В общем, если Вы ищите правду - возьмите какой-нибудь спрайт, отрисуйте его в BitmapData, и сделайте 1000 раз copyPixels, замерьте время. Потом расплодите этот спрайт на 1000 других и поменяйте разок каждому координату (да, именно так. Я верю, что внутри Flash API есть инвалидаторы). Удивитесь результату. А потом запускайте тест секунд через 5 после старта FP, например, по клику. И снова удивитесь результату.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Psycho Tiger
|
|
|||||
|
Ну, что-то неправильно. Вы делали BitmapData#lock? Давайте полный код теста.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
public class Main extends Sprite { public var loader:Loader = new Loader(); public var img:Bitmap; public var vImg:Vector.<Sprite> = new Vector.<Sprite>; public function Main():void { loader.load(new URLRequest("../lib/dirt.jpg")); stage.addEventListener(MouseEvent.MOUSE_DOWN, initImg); for (var i:int = 0; i < 10000; i++) { vImg.push(new Sprite); } } public function initImg(e:MouseEvent):void { var rect:Rectangle = new Rectangle(0, 0, 50, 50); var point:Point = new Point(50, 50); img= Bitmap(loader.content) var tim:Number = getTimer(); for (var i:int = 0; i < 10000; i++) { //img.bitmapData.copyPixels(img.bitmapData, rect,point); vImg[i].x += 1; vImg[i].y += 1; } trace(getTimer()-tim); } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|