从我的主文档类中拉出一个加载xml文件的类:
Main.as:
language = new Language();
在我的语言课程中,我使用URLLoader加载了一个xml文件,并有一个内部的' onComplete'功能。我会用什么来让我的Main课程知道这个事件已经完成?
我已经看了一下dispatchEvent()方法并且遇到了更多麻烦,可能使用它错了。非常感谢任何帮助
编辑/进一步说明:
从我看来我的Main类包含:
addEventListener("languageLoaded", functionName);
我坚持了我班级的需要。当我使用时:
dispatchEvent(new Event("customEvent"));
我有一个未定义的错误。我已经读过我需要将EventDispatcher扩展为我的课程,但这似乎不适合我,并且会有不同的方法来做到这一点。
答案 0 :(得分:1)
在Main.as中:
language = new Language();
language.addEventListener("languageLoaded", functionName);
语言需要“扩展EventDispatcher”作为Main“扩展Sprite”。
在Language.as中:
dispatchEvent(new Event("languageLoaded"));
但不是
dispatchEvent(new Event("customEvent"));
答案 1 :(得分: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
{
}
}
如果在URLLoader触发事件之前调用Language.someFunction和Main.someFunction,则会调用Language.myListener和Main.onLoaderComplete以响应事件。