AS3调用函数内部的加载器事件函数

时间:2014-04-20 15:07:20

标签: actionscript-3 function events listener

我在另一个函数中调用条件内的函数时遇到问题。我已经尝试了它并且它完美地工作但它取决于呼叫的位置。

进程:我有一个表单完成并发送时调用的checkCode();函数。

private function checkCode():void {
    var url = "checktrue.php";
    var loader:URLLoader = new URLLoader;
    var urlreq:URLRequest = new URLRequest(url);
    var urlvars:URLVariables = new URLVariables;
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    urlreq.method = URLRequestMethod.POST;
    urlvars.codeVar = formattedCode;
    urlreq.data = urlvars;
    loader.addEventListener(Event.COMPLETE, completed); //Completed function
    status.text = "calling loader";
    loader.load(urlreq);
}

当php完成时,调用“completed”并且:

private function completed(event:Event = null):void {
    var loader2: URLLoader = URLLoader(event.target);
    var checked:String = loader2.data.checked;
    var codetrue:String = loader2.data.codetrue;

    if(checked == "1" || codetrue == null || codetrue == "") {
        trace("WRONG");
    }
    else{
        download(); //download function
        trace("ok");
    }
}

在这里,我获取了php变量并检查它们是否有效调用download()函数。

public function download():void {
    req = new URLRequest(proxy + filename);
    file = new FileReference();

    file.addEventListener(Event.COMPLETE, completeHandler);
    file.addEventListener(Event.CANCEL, cancelHandler);
    file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    file.download(req, "file.zip");

}

有可能从“已完成”的加载器函数中调用此函数吗? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

您需要将下载功能放在另一个按钮中才能正确使用。或者创建自己的活动。