Здравствуйте!
Есть такая проблема: Создаю свой класс BrushUpdateEvent extends Event. События у меня находятся в отдельном пакете. Затем это событие dispatchEvent(event) на спрайт(который представляет кнопку на выбор определенного объекта). Диспетчеризация происходит в слушателе события CLICK.
Код AS3:
package userEvents
{
import flash.events.Event;
public class BrushUpdateEvent extends Event
{
public static const BRUSH_UPDATE:String = "brushUpdate";
public var field:uint;
public var typeObj:uint;
public var variation:uint;
public function BrushUpdateEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
}
}
Код AS3:
private function hMouseClickTl(e:MouseEvent):void
{
var brEvent:BrushUpdateEvent = new BrushUpdateEvent(BrushUpdateEvent.BRUSH_UPDATE);
brEvent.field = _currentField;
brEvent.typeObj = (e.currentTarget as ObjectTXR).getIdObj;
brEvent.variation = (e.currentTarget as ObjectTXR).currentFrame;
(e.currentTarget as ObjectTXR).dispatchEvent(brEvent);
}
Слушатель же регистрируется в пользовательском курсоре, который находится в контейнере Workspace
Код AS3:
package editors
{
import flash.display.Sprite;
import userEvents.BrushUpdateEvent;
/**
* ...
* @author IG
*/
public class Cursor extends Sprite
{
public function Cursor ()
{
this.addEventListener(BrushUpdateEvent.BRUSH_UPDATE, hBrushUpdate);
}
public function hBrushUpdate(e:BrushUpdateEvent):void
{
trace("Update");
_field = e.field;
_typeObj = e.typeObj;
_variation = e.variation;
}
Куда какой Объект вложен:
----------------------------------Editor
------------------Workspace----------------------Toolsbar
------------Cursor(влож. в спрайт)----------ObjectTXR(влож. в спрайт, который вложен в Toolsbar)
Собственно я менял куда диспетчерить событие, добавлял слушателей в других классах, но событие не слушается(или не диспетчерится). В тоже время есть другая кнопка-триггер в Toolsbar, где по клику диспетчериться событие(в самом классе кнопки) а слушается в Toolsbar. Тут работает все нормально.
Может чего подскажите. Спасибо.