2011-12-23 3 views
0

Я хочу получить значение e.target внутри визуального родителя мувиклипа (ChildClass). Пожалуйста, обратитесь к * ** * ** * ** * в следующем коде.Как захватить дочерний event.target?

public class ParentClass extends MovieClip 
{ 

    public function ParentClass() 
    { 
    addEventListener(ChildClass.SOMETHING_HAPPENED, somethingHappened) 
    } 

    public function somethingHappened(e:Event) 
    { 
     //************************************************** 
     //************************************************** 
     // WANT TO GET THE VALUE OF e.target (ie. instance of SimpleButton) OF CHILD CLASS 
     //**************************************************** 
     //************************************************** 
    } 


} 


    public class ChildClass extends MovieClip 
{ 
     public static const SOMETHING_HAPPENED:String = "someThingHappened" ; 

    public function ChildClass() 
    { 
    my_btn.addEventListener(MouseEvent.CLICK, my_btn_CLICK) 
    } 

    public function my_btn_CLICK(e:Event) 
    { 
     dispatchEvent(new Event(ChildClass.SOMETHING_HAPPENED)); 
    } 


} 

ответ

1

Рассмотрите, что событие, отправленное с объекта в списке отображения, будет проходить через каждый контейнер над ним. Предположим, что ваш список дисплей выглядит

stage 
> parent 
> > child 
> > > button 

Если button отправляет событие, то вы можете слушать его на stage, parent, child и button! Из-за этого вы можете отправить button событие, но прислушайтесь к нему.

В своем классе ребенок:

private function my_btn_CLICK(e:Event):void 
{ 
    button.dispatchEvent(new Event(SOMETHING_HAPPENED)); 
} 

Теперь в вашем родительском классе:

public function somethingHappened(event:Event):void 
{ 
    trace(event.target);  // The target will be the button. 
    trace(event.currentTarget); // The current target will be this object. 
} 
Смежные вопросы