1

DispatchEventを使用して、イベント「Beep2」をキャッチするために必要なものを理解しようとしています。ディスパッチイベント「Beep2 true」のトレース結果を生成できても、関数「DoNext」は起動していません。

このコードは、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));
    }
}
4

1 に答える 1

2

EventListener を追加する前に、イベントが発生するという問題があると思います。

于 2011-04-28T20:00:20.637 に答える