2013-10-30 124 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。