0

メイン ドキュメント クラスから、xml ファイルをロードするクラスをプルします。

Main.as:

language = new Language();

私の言語クラス内で、URLLoader を使用して xml ファイルをロードし、内部の「onComplete」関数を持っています。このイベントが完了したことを Main クラスに知らせるには、何を使用すればよいでしょうか?

私はdispatchEvent()メソッドを調べましたが、おそらく間違った使い方をしただけで、さらに問題が発生しました。どんな助けでも大歓迎です

編集/詳細説明:

私の Main クラスには次のものが含まれているようです。

addEventListener("languageLoaded", functionName);

私は自分のクラスが必要とするものに行き詰まっています。私が使用する場合:

dispatchEvent(new Event("customEvent"));

未定義のエラーがあります。EventDispatcher をクラスとして拡張する必要があることを読みましたが、それは私には思えず、これを行うには別の方法があります。

4

2 に答える 2

1

Main.as:

language = new Language();
language.addEventListener("languageLoaded", functionName);

言語は、メインが「スプライトを拡張する」ように「EventDispatcher を拡張する」必要があります。

Language.as:

dispatchEvent(new Event("languageLoaded"));

だがしかし

dispatchEvent(new Event("customEvent"));
于 2013-10-30T17:09:07.597 に答える
0

コードを追加すると、問題が何であるかを明確にするのに役立つ場合があります。ただし、これは多かれ少なかれ解決策になるようです。

言語名:

public class Language
{
    private var m_uldr:URLLoader = new URLLoader();

    private function someFunction():void
    {
        m_uldr.addEventListener(Event.COMPLETE, myListener);
    }

    private function myListener(pEvent:Event):void
    {
    }

    public function addLoaderCompleteListener(pListener:Function):void
    {
        m_uldr.addEventListener(Event.COMPLETE, pListener);
    }
}

Main.as:

public class Main extends Sprite
{
    private var m_lang:Language = new Language();

    private function someFunction():void
    {
        m_lang.addLoaderCompleteListener(onLoaderComplete);
    }

    private function onLoaderComplete(pEvent:Event):void
    {
    }
}

URLLoader がイベントを発生させる前に Language.someFunction と Main.someFunction を呼び出すと、Language.myListener と Main.onLoaderComplete の両方がイベントに応答して呼び出されます。

于 2013-10-30T17:04:49.483 に答える