2015-03-30 6 views
0

Я новичок в AS3, я хочу открыть несколько вкладок браузера со вспышкой.Actionscript 3 - не удается открыть несколько экземпляров navigateToURL() одновременно

Я пытаюсь просто запустить несколько экземпляров navigateToURL().

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

, но только последний экземпляр navigateToURL выполняется в браузере. Я искал в Интернете, и кто-то указал, что callLater может решить эту проблему. Но каждый раз, когда я пытаюсь использовать callLater я получаю

Error: Call to a possibly undefined method callLater. 

Я проанализировал самана документацию здесь: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7b06.html

Все объекты, которые наследуют от класса UIComponent может открыть метод callLater().

Как я это делаю? Я попытался изменить свой код на что-то вроде этого

public class Main extends UIComponent 

но он не работает.

ответ

0

Для начала, UIComponent класса является базовым классом для всех визуальных компонентов, используемых в Flex (как Label, Progressbar, ...), но я думаю, что ваше использует Flash, так что это не хороший способ.

Действительно я не знаю, почему вы хотите открыть много URL-адресов в браузере в одно и то же время (и я думаю, что вашему конечному пользователю может быть не понравится), но вы должны использовать некоторые интервалы между каждыми 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(); 

Надежда, которая может помочь.