Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.03.2010, 01:12
ratin вне форума Посмотреть профиль Отправить личное сообщение для ratin Найти все сообщения от ratin
  № 1  
Ответить с цитированием
ratin
 
Аватар для ratin

Регистрация: Sep 2009
Сообщений: 127
По умолчанию Падение производительности рисовалки

Привет всем, реализовываю рисовалку, примерно таким кодом:

Код AS1/AS2:
addEventListener(MouseEvent.MOUSE_DOWN,onStartDrawing);
private function onStartDrawing(e:MouseEvent):void{
	shape_mc.graphics.moveTo(mouseX,mouseY);
	addEventListener(MouseEvent.MOUSE_UP,onEndDrawing);
	addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoving);
}
private function onMouseMoving(e:MouseEvent):void{
	shape_mc.graphics.lineTo(mouseX,mouseY);
	e.updateAfterEvent();
}
private function onEndDrawing(e:MouseEvent){
	removeEventListener(MouseEvent.MOUSE_UP,onEndDrawing);
	removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMoving);
}
Примерно через 40-50 секунд, ролик начинает подлагивать... примерно до 13-15 кадров.
Что посоветуюте для решения? Не думаю, что флеш не может оброботать такую рисовалку - думаю, дело в другом.


Последний раз редактировалось ratin; 23.03.2010 в 07:49.
Старый 23.03.2010, 01:35
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Может в битмапдату стоит отрисовывать по MOUSE_UP? И ее уже отображать.

Старый 23.03.2010, 02:26
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
А еще можно перейти на ENTER_FRAME, ибо MOUSE_MOVE диспатчится очень часто => много-много векторной графики на выходе (правда плавность контура немного упадет)
И, да, рисовать в битмап будет очень полезно и сэкономит кучу ресурсов
__________________
...вселенская грусть

Старый 23.03.2010, 07:55
ratin вне форума Посмотреть профиль Отправить личное сообщение для ratin Найти все сообщения от ratin
  № 4  
Ответить с цитированием
ratin
 
Аватар для ratin

Регистрация: Sep 2009
Сообщений: 127
udaaff, не, рисовать надо именно по MOUSE_MOVE - пользователь должен видеть сразу, что рисует... А что вы имеете ввиду под рисованием в битмап? Т.е. скидывать в битмап, например, по событию MOUSE_UP, а векторную картинку обнулять?

gloomyBrain, ENTER_FRAME точно не выход - скорость падает тотально, и все ощущение "рисования" пропадает.

Старый 23.03.2010, 11:52
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от ratin Посмотреть сообщение
Т.е. скидывать в битмап, например, по событию MOUSE_UP, а векторную картинку обнулять?
Да, это и имелось в виду. Т.е. пользователь, допустим, в шейпе рисует линию, он естественно, при этом видит то, что он рисует. Как только он закончил рисование, то отрисовываем/дорисовываем этот шейп в битмап. Шейп очищаем.
Т.е. тормоза, видимо, возникают из-за обилия вектора. Можно попробовать свойство DisplayObject#cacheAsBitmap в true поставить.
Но отрисовка в битмапдату дает, имхо, больше плюсов. Например, если потребуется реализовать тот же ластик.

Старый 23.03.2010, 13:27
ratin вне форума Посмотреть профиль Отправить личное сообщение для ratin Найти все сообщения от ratin
  № 6  
Ответить с цитированием
ratin
 
Аватар для ratin

Регистрация: Sep 2009
Сообщений: 127
udaaff, cacheAsBitmap пробовал - толку мало.
Сегодня попробую скидывать в битмап, отпишусь о результатах, спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.