Actionscript 3 - не может открыть несколько экземпляров 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 ответ

Решение

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

На самом деле я не знаю, почему вы хотите открыть много URL в браузере одновременно (и я думаю, что ваш конечный пользователь, возможно, не понравится), но вы должны использовать некоторые интервалы между каждым navigateToURL() звонки с использованием Timer объект например:

var urls:Array = [
    'http://www.wikipedia.org',
    'http://www.ubuntu.com',
    'http://www.stackru.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();

Надеюсь, что это может помочь.

Другие вопросы по тегам