Вопрос по javascript – Отправить массив из Flash (AS3) в JavaScript

8

Можно ли отправить массив из Flash (AS3) в JavaScript с помощью вызова ExternalInterface?

В настоящее время я вызываю функцию несколько раз из цикла «для каждого» во Flash, но JavaScript идет слишком быстро, чтобы поддерживать JavaScript.

Моя идея состоит в том, чтобы создать массив атрибутов, передать его функции JavaScript, а затем выполнить цикл в JavaScript.

Спасибо, Джош

Только что нашел это, что может быть причиной моих проблем Scottgmorgan.com / блог / index.php / теги / ExternalInterface По-прежнему интересуется массивом, если это возможно. Josh

Ваш Ответ

2   ответа
7

это должно быть быстрее для небольших массивов и не требует использования eval или внешней библиотеки для анализа. Соедините массив в строку, как это во flash:

Item1 | item2 | item3 | item4

Передайте строку в JS и снова разбейте ее, используя split ("|")

хорошая идея - спасибо. Josh
Просто убедитесь, что ваши данные никогда не будут содержать символ (ы) разделителя! singpolyma
8

http: //livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html#call ()

... arguments - аргументы, передаваемые функции в контейнере. Вы можете указать ноль или более параметров, разделяя их запятыми. Они могут быть любого типа данных ActionScript. Когда вызывается функция JavaScript, типы ActionScript автоматически преобразуются в типы JavaScript; когда вызов выполняется в другой контейнер ActiveX, параметры кодируются в сообщении запроса.

Быстрый тест:

AS код:

if(ExternalInterface.available) {
    ExternalInterface.call("jsTest", [0,1,"two",{a:1,b:2}]);
}

JS код:

function jsTest(arg) {
    alert(arg);
}

Похожие вопросы