![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 38
|
Здравствуйте!
В приложении, которое я разрабатываю, есть необходимость использовать нестандартные курсоры. Для этого я использую просто мувиклип, координаты которого я меняю. Проблема в том, что курсор ездит по поверхности, которая довольно часто перерисовывается. Там расположено три графика (по 1000 точек), которые могут перерисовываться раз в каждые 100мс + сверху графиков могут быть другие мувиклипы, положение которых также меняется каждые 100мс. При такой перерисовке мой курсор начинает нещадно отставать от настоящего. Отстает на несколько сантиметров. Есть ли способ ускорить отрисовку курсора? И еще. Как я понимаю такие методы как lineTo, moveTo ничего не рисуют, а просто добавляются в очередь. Как можно засечь сколько занимает сама отрисовка? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
updateAfterEvent
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 38
|
__etc, правильно ли я понял, то вы имели ввиду метод экземпляра класса MouseEvent (хотя такой же есть еще у KeyboardEvent и TimerEvent)? И, если это так, то я должен вызывать этот метод после изменения координат моего курсора.
Правильно понял? PS Кстати, я пробовал заменить ручное присвоение координат на startDrag(), то есть в этом случае перемещением управляла сама среда, и эффект был такой же. А какие есть средства профилировани для флеша? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Подпишитесь на событие MOUSE_MOVE, в нём вызывайте метод updateAfterEvent у пришедшего события.
|
|
|||||
|
strange mood
|
Мне в голову пришла адская идея, мб поможет. Сделайте буферизацию!
Как я себе это представляю: Имеется спрайт, который на сцене не лежит. В этом спрайте рисуются графики, причём не одним куском, а по частям, с распределением во времени. Т.е. например если нужно рисовать 1000 точек каждые 100мс, рисуется по 100 точек каждые 10мс. Это позволит более равномерно распределить нагрузку по времени. Когда график в спрайте нарисован полностью, он отрисовывается в битмап, который лежит на сцене. Ещё можно попробовать написать рисование графиков в растре, BitmapData.lock() в помощь. Но тут я не знаю, будет ли оно работать быстрее.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
стервочка (я мужик)
|
GAIKER, а может проще использовать updateAfterEvent?
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 38
|
__etc, с updateAfterEvent стало заметно быстрее, только вот от курсора стали оставаться «запчасти»:
![]() Причем это происходит, когда прорисовка подложки, о которой я говорил в сабже, не делается вообще. Как можно избав иться от «запчастей»? И самое главное, откуда они берутся? Последний раз редактировалось Kolan; 06.02.2009 в 12:05. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну это надо вас спросить, откуда они берутся.
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 38
|
__etc, я с этим курсором кроме изменения координат ничего не делаю.
Вот весь код маус мува: |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|