Tails
28.12.2012, 12:54
Есть иерархия вложенности спрайтов: a.b.c. Создаем экземпляр EventDispatcher и в target передаем спрайт c. Это получается объект, который будет получать события?
Объясните пожалуйста, почему, когда диспатчим событие, спрайт c его не получает?
import flash.events.EventDispatcher;
import flash.display.Sprite;
import flash.events.Event;
var a:Sprite = new Sprite();
var b:Sprite = new Sprite();
var c:Sprite = new Sprite();
addChild(a);
a.addChild(b);
b.addChild(c);
var d:EventDispatcher = new EventDispatcher(c);
a.addEventListener('customEvent', onA);
b.addEventListener('customEvent', onB);
c.addEventListener('customEvent', onC);
d.dispatchEvent(new Event('customEvent', true));
function onA(e:Event):void{
trace('Event A');
}
function onB(e:Event):void{
trace('Event B');
}
function onC(e:Event):void{
trace('Event C');
}
Трейс:
Event B
Event A
Объясните пожалуйста, почему, когда диспатчим событие, спрайт c его не получает?
import flash.events.EventDispatcher;
import flash.display.Sprite;
import flash.events.Event;
var a:Sprite = new Sprite();
var b:Sprite = new Sprite();
var c:Sprite = new Sprite();
addChild(a);
a.addChild(b);
b.addChild(c);
var d:EventDispatcher = new EventDispatcher(c);
a.addEventListener('customEvent', onA);
b.addEventListener('customEvent', onB);
c.addEventListener('customEvent', onC);
d.dispatchEvent(new Event('customEvent', true));
function onA(e:Event):void{
trace('Event A');
}
function onB(e:Event):void{
trace('Event B');
}
function onC(e:Event):void{
trace('Event C');
}
Трейс:
Event B
Event A