您好我正在编写一个Flex应用程序,它具有一个MainMovie,可以加载Flex程序(ChildMovie),具体取决于用户在MainMovie中选择的内容。下面是一些伪代码,以帮助我有希望地描述我的问题。
class MainMovie{
private var request:URLRequest = new URLRequest();
public function callPHPfile(param:String, loader:URLLoader,
handlerFunction:Function):void {
var parameter:URLVariables=new URLVariables();
parameter.param = param;
request.method = URLRequestMethod.POST;
request.data = parameter;
request.url = php file on server;
loader.addEventListener(Event.COMPLETE, handlerFunction);
loader.load(request);
}
}
Class ChildMovie {
private var loaderInChild:URLLoader = new URLLoader();
public function handlerInChild(e:Event):void {
process data....
loaderInChild.removeEventListerner(Event.COMPLETE, handlerInChild);
}
private function buttonClickHandler(e:Event):void{
Application.application.callPHPfile(param, loaderInChild, handlerInChild)
}
}
我可以看到callPHPfile函数正在执行并从httpFox接收到xml数据,问题是handlerInChild函数中的代码没有被执行。我在这里做错了什么?
答案 0 :(得分:1)
这是一个运行时错误。我忘了我在firefox中卸载了flash播放器调试器并且没有显示。在handlerInChild函数中,有一行
var data:XML = loader.data;
应该是
var data:XML = XML(loader.data);
并且代码将按预期运行。