Actionscript 3 as3如何停止无限循环?
我有一个网站,基本上我想使用flash自动重定向到另一个网站,只要它加载。但它的速度一直很快,甚至一度使我的电脑崩溃。如何将此设置为仅向用户发送一次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
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命令。这就是事件的函数。输入\帧-每帧执行指定的函数。你为什么不编写并执行你自己的函数——一次——来实现你想要的呢?