未调用子电影中的URLLoader处理程序

时间:2010-07-16 09:13:51

标签: actionscript-3 urlloader flex3

您好我正在编写一个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函数中的代码没有被执行。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

这是一个运行时错误。我忘了我在firefox中卸载了flash播放器调试器并且没有显示。在handlerInChild函数中,有一行

var data:XML = loader.data;

应该是

var data:XML = XML(loader.data);

并且代码将按预期运行。