如何在多次输入框架上停止?

时间:2012-03-08 06:02:53

标签: actionscript-3

我正在尝试对输入框架执行简单的url请求,但它似乎正在执行多次?

我尝试删除handleLoadSuccessful上的事件处理程序,它似乎阻止它无限触发,但它在停止之前仍然执行了大约10次。

如何让它只开一次?

addEventListener(Event.ENTER_FRAME, onLoadHandler);
function onLoadHandler(event:Event) {
    var scriptRequest:URLRequest = new URLRequest("http://ad.doubleclick.net/clk;254580535;19110122;t?http://www.gamespot.com.au/Ads/gswide/hp/1x1.gif");
    var scriptLoader:URLLoader = new URLLoader();
    var scriptVars:URLVariables = new URLVariables();

    scriptLoader.addEventListener(Event.COMPLETE, handleLoadSuccessful);
    scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);

    scriptRequest.method = URLRequestMethod.POST;
    scriptRequest.data = scriptVars;

    scriptLoader.load(scriptRequest);

    function handleLoadSuccessful($evt:Event):void {
        trace("Message2 sent.");
        removeEventListener(Event.ENTER_FRAME, onLoadHandler);

    }

    function handleLoadError($evt:IOErrorEvent):void {
        trace("Message1 failed.");
    }
}

1 个答案:

答案 0 :(得分:0)

ENTER_FRAME每秒被x次触发,其中x是文档帧率。

你的监听功能中的代码让我觉得你根本不需要事件监听器或监听功能 - 如果你只想要一次性调用该函数中的内容,将其中的所有内容移到其外部自己的。

您也可以将其全部移动到init()函数中,然后再调用一次。

此外,您的函数handleLoadSuccessful()handleLoadError()不应在另一个函数中定义(在您的情况下为onLoadHandler())。