Actionscript 3 - 无法同时打开多个navigateToURL()实例

时间:2015-03-30 01:43:51

标签: actionscript-3 flash navigatetourl

我是AS3新手,我想用flash打开多个浏览器标签。

我试图简单地启动navigateToURL()的多个实例。

for each (var str:String in arrayofrequests) 
{
[...]
    try { navigateToURL(request, "_blank");}
[...]
}

但只有最后一个navigateToURL实例在浏览器中执行。 我在网上搜索,有人指出callLater可以解决这个问题。 但是每当我尝试使用callLater时,我都会得到

 Error: Call to a possibly undefined method callLater.

我在这里分析了adobe文档:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7b06.html

  

从UIComponent类继承的所有对象都可以打开callLater()方法。

我是怎么做到的?我试图将我的代码改为像这样的

public class Main extends UIComponent

但它不起作用。

1 个答案:

答案 0 :(得分:0)

首先,UIComponent class是Flex中使用的所有可视组件的基类(如LabelProgressbar,...),但我认为您使用的是Flash ,所以这不是好方法。

我真的不知道你为什么要在浏览器中同时打开许多网址(而且我认为你的最终用户可能不喜欢这样),但你必须在每个网址之间使用一些间隔navigateToURL()使用Timer对象进行调用,例如:

var urls:Array = [
    'http://www.wikipedia.org',
    'http://www.ubuntu.com',
    'http://www.stackoverflow.com'
];

var timer:Timer = new Timer(300, urls.length);
    timer.addEventListener(TimerEvent.TIMER, onTimer);
    function onTimer(e:TimerEvent):void {
        navigateToURL(new URLRequest(urls[timer.currentCount - 1]), '_blank');
    }
    timer.start();

希望可以提供帮助。