![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2010
Сообщений: 2
|
Доброго времени! Такая проблема: меняю цвета на битмапе через ColorTransform(1,1,1,1, rOffset, gOffset, bOffset, 0) ; по событию от формы - редактора смещений. Размер картинки 420х550. На первый (любой) канал реакция в секунду, на последующие изменения - десятки секунд, а то и минуты ;((. Вопросы: 1) почему так тормозит перекрашивание картинки и нет ли средства ускорить процесс, 2) нигде не нашел событий типа "beginUpdate" - "endUpdate", или хотя бы сообщение от рендера об обновлении на этой картинке..
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
а вы уверены что ColorTransform не выполняется в основном потоке? зачем тогда события? что-то у вас не-то... задержки уж больно запредельные.. код в студию..
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 2
|
.... код? Это из 4-х модулей от 200 до 700 строк ... попробую на словах:
1) самодельная форма, объект _colors, что-то типа ColorBox, задаем смещение по каналам, при установке курсора в новую позицию, в обработчике на MouseUp, генерим свое событие - dispatchEvent(new Event(Colorsetevent)) ; 2) в модуле - инструменте редактирования, который создает объект _colors, регистрируем функцию coloraction: _colors.addEventListener(_colors.Colorsetevent, coloraction) ; 3) coloraction транслирует сообщение из модуля - инструмента в головной, где выложена редактируемая картинка, и передает значения по каналам eldata.offr, eldata.offg, eldata.offb - см. код ниже; 4) вызывается вот эта хелповая функция (на проверки не обращайте внимания): public function elmdecolors(aElm : DisplayObject) : Boolean { with (GJ_global) { if ((eldata.type == MOV) || (eldata.type == TXT)) { return false ;} var transcolor : ColorTransform = aElm.transform.colorTransform ; var rOffset : Number = transcolor.redOffset + eldata.offr ; var gOffset : Number = transcolor.greenOffset + eldata.offg ; var bOffset : Number = transcolor.blueOffset + eldata.offb ; aElm.transform.colorTransform = new ColorTransform(1,1,1,1, rOffset, gOffset, bOffset, 0); return true ; } } // elmdecolors Здесь aElm - Bitmap, лежит в контейнере головной формы... Все это работает, структура такая, т.к. инструментов несколько: геометрия, уровни. Если уменьшаю картинку aElm в разы - все работает "в лет". При максимальном размере 420х550 реакция - от секунд до минуты, при этом мышь бегает и другие формы активны! |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|