Как захватить событие ребенка. Цель? - PullRequest
0 голосов
/ 23 декабря 2011

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

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 Ответ

1 голос
/ 23 декабря 2011

Учтите, что событие, отправленное от объекта в списке отображения, пройдет через каждый контейнер над ним.Скажем, ваш список отображения выглядит как

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.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...