ActionScript 3 - загрузчик, поддерживающий множество приложений?

Я создал простой SWF-загрузчик в ActionScript 3.0. Он загружает SWF-файл с сервера и затем воспроизводит его. Во время загрузки он отображает экран «загрузки».
Его основной недостаток в том, что он может загружать только одно Flash-приложение - то, для которого оно скомпилировано. Скажем, он называется test1.swf.
Есть ли способ заставить загрузчик поддерживать более одного Flash-приложения (например, test2.swf и test3.swf)? Я имею в виду передачу ему внешних параметров, а не создание другого загрузчика. Является ли использование Javascript единственным способом сделать это? Я не хочу, чтобы моему загрузчику требовалась поддержка Javascript.
И я действительно не хочу создавать отдельные загрузчики для всех моих приложений ...
Заранее спасибо.


person rhino    schedule 29.08.2010    source источник


Ответы (1)


Чтобы загрузить внешний SWF-файл, вашему загрузчику нужен только URL-адрес загружаемого SWF-файла, этот URL-адрес не должен быть жестко задан. Есть много способов передать параметры в SWF-файл, и они не обязательно требуют Javascript.

Например, вы можете загрузить файл XML, простой текстовый файл тоже подойдет, вы также можете использовать скрипт PHP. Для использования flahsvars потребуется Javascript, но только для установки вашего приложения на HTML-странице.

В следующем примере ваше приложение не нужно перекомпилировать, вы просто меняете URL-адрес в текстовом файле.

Example with a text file containing a url, something like this:
http://yourwebsite.com/test1.swf

var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE , completeHandler );
urlLoader.load( new URLRequest('swfURL.txt') );

function completeHandler(event:Event):void
{
 loadExternalSWF(event.target.data );
 event.target.removeEventListener(Event.COMPLETE , completeHandler );
}

function loadExternalSWF(url:String ):void
{
 //your code here , using the url value
 trace(url );//should return your text file content
}
person PatrickS    schedule 29.08.2010
comment
Спасибо за ответ. В любом случае, я не знаю, как загрузка XML или текстового файла может решить мою проблему, а мне нужно передать параметры прямо с веб-страницы, на которой отображается Flash. Думаю, я наконец решу использовать Javascript ... - person rhino; 29.08.2010
comment
вместо этого вы можете использовать FlashVars - person Eugene; 29.08.2010
comment
Спасибо. :) Раньше я не знал о FlashVars, теперь поискал в гугле, и он мне действительно пригодился. Я, наверное, воспользуюсь этим, спасибо. - person rhino; 01.09.2010