Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3如何停止无限循环?_Actionscript 3_Infinite Loop_Enterframeevent - Fatal编程技术网

Actionscript 3 as3如何停止无限循环?

Actionscript 3 as3如何停止无限循环?,actionscript-3,infinite-loop,enterframeevent,Actionscript 3,Infinite Loop,Enterframeevent,我有一个网站,基本上我想使用flash自动重定向到另一个网站,只要它加载。但它的速度一直很快,甚至一度使我的电脑崩溃。如何将此设置为仅向用户发送一次 addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler); function fl_EnterFrameHandler(event:Event):void { //navigateToURL(new URLRequest("http://www.levittproperties.com/s

我有一个网站,基本上我想使用flash自动重定向到另一个网站,只要它加载。但它的速度一直很快,甚至一度使我的电脑崩溃。如何将此设置为仅向用户发送一次

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
//navigateToURL(new URLRequest("http://www.levittproperties.com/sitebuildercontent/sitebuilderfiles/homepage.swf"), "_self");
trace("Entered frame");
}

“//”只是为了方便您在flash中尝试。我不想你也撞车。“跟踪”就足以看到我在说什么了。

你所需要做的就是杀死事件侦听器,如果你已经在目标页面上,考虑下面的内容:

import flash.external.ExternalInterface;

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
    var gotoURL:String = "http://www.levittproperties.com/sitebuildercontent/sitebuilderfiles/homepage.swf";
    var currentURL:String = ExternalInterface.call("window.location.href.toString");
    if(gotoURL != currentURL) {
        navigateToURL(new URLRequest(gotoURL), "_self");
    } else {
        Event.currentTarget.removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
    }
}

试着按照Garry Wong说的去做。但如果出于某些原因必须使用
ENTER_FRAME
,请仅使用一次,如下所示:

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
    removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
    navigateToURL(new URLRequest("http://www.levittproperties.com/sitebuildercontent/sitebuilderfiles/homepage.swf"), "_self");     
}

我不知道您在AS3上的背景,但您在那里编写的内容告诉程序在每一帧执行navigateToURL命令。这就是事件的函数。输入\帧-每帧执行指定的函数。你为什么不编写并执行你自己的函数——一次——来实现你想要的呢?