Показать сообщение отдельно
Старый 05.03.2010, 19:37
leonidge вне форума Посмотреть профиль Отправить личное сообщение для leonidge Найти все сообщения от leonidge
  № 3  
Ответить с цитированием
leonidge

Регистрация: 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 реакция - от секунд до минуты, при этом мышь бегает и другие формы активны!