2013-10-30 162 views
0

從我的主文檔類我拉它加載XML文件類:AS3監聽一類聽衆

Main.as:

language = new Language(); 

在我的語文課我加載使用的URLLoader XML文件並具有內部「onComplete」功能。我會用什麼讓主班級知道這個事件是完整的?

我看了一下dispatchEvent()方法,只是遇到了更多的麻煩,可能使用它錯了。任何幫助是極大的讚賞

編輯/新解:

從什麼,似乎我的主類將包括:

addEventListener("languageLoaded", functionName); 

我堅持什麼我的課的需求。當我使用:

dispatchEvent(new Event("customEvent")); 

我有一個未定義的錯誤。我讀過,我需要擴展EventDispatcher作爲我的課,但這似乎對我來說,將有不同的方式來做到這一點。

+1

貴'Language'類擴展EventDispatcher或此事件從繼承的類? – prototypical

回答

1

在Main.as:

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

語言需要 「擴展EventDispatcher」 爲主要 「擴展Sprite」。

在Language.as:

dispatchEvent(new Event("languageLoaded")); 

但不

dispatchEvent(new Event("customEvent")); 
+0

延長課程的伎倆,我想我只是被拋棄,爲什麼我需要。這有助於感謝你 – kilrizzy

0

更多的代碼可能有助於向我們澄清問題的可能性。然而這聽起來像這將是更多或更少的解決方案:

Language.as:

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 
    { 
    } 
} 

如果你打電話Language.someFunction和Main.someFunction前URLLoader觸發該事件,將響應該事件調用Language.myListener和Main.onLoaderComplete。