Настраиваемое событие AS3 не запускается для класса документов (с использованием скрипта действий DispatchEvent) - PullRequest
1 голос
/ 28 апреля 2011

Я пытаюсь понять, что нужно, чтобы поймать событие "Beep2", используя dispatchEvent. Функция «DoNext» не запускается, хотя я могу произвести трассировку результата dispatchEvent «Beep2 true».

Этот код использует класс CustomEvent для расширения класса события. До сих пор это право на мой предел знаний, поэтому любая помощь будет оценена. :)

Спасибо.

пакет //Main.as (класс документа)

import flash.display.MovieClip;
import flash.events.Event;

public class Main extends MovieClip 
{
    public var ftasks:MovieClip;
    public function Main () 
    {
        ftasks = new filetasks();
        addChild(ftasks);
        ftasks.addEventListener(CustomEvent.BEEP2, DoNext);
    }

//not firing
    public function DoNext (evt:Event) 
{
        trace("DoNext"); 
    }


}

пакет //CustomEvent.as

//Extend Event class.
import flash.events.Event;
public class CustomEvent extends Event
{
    public static const BEEP1 ="Beep1";
    public static const BEEP2 ="Beep2";

    //Declare Event Constructor
    public function CustomEvent(type:String, bubbles:Boolean)
    {
        super(type, bubbles);
        type = this.type;
        bubbles = this.bubbles;
        trace(type, bubbles);
    }

    public override function clone():Event
    {
        return new CustomEvent(type, bubbles);
    }
}

пакет //filetasks.as

import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;

public class filetasks extends MovieClip 
{
    public var Ref;

    public function filetasks (_Ref) 
    {
        Ref = _Ref;
        dispatchEvent(new CustomEvent(CustomEvent.BEEP2, true));
    }

    public function done (evt:MouseEvent) 
    {
        dispatchEvent(new CustomEvent(CustomEvent.BEEP1, true));
    }
}

1 Ответ

2 голосов
/ 29 апреля 2011

Я думаю, что ваша проблема в том, что событие запускается еще до того, как вы добавили EventListener.

...