Как прочитать глобальную переменную JavaScript из ActionScript - PullRequest
4 голосов
/ 29 марта 2009

Учитывая, что на моей веб-странице есть глобальная переменная javascript с именем myVar, как я могу получить доступ к значению переменной myVar из моего флэш-фильма, используя javascript?

Я вижу множество примеров использования внешнего интерфейса для выполнения javascript из actionScript, но я не могу найти примеры возврата значений обратно во флэш-фильм с использованием actionscript.

Спасибо заранее. Надеюсь, мой вопрос достаточно ясен.

Ответы [ 4 ]

6 голосов
/ 29 марта 2009

ExternalInterface работает, позволяя JavaScript вызывать функцию ActionScript в фильме, и наоборот. При желании вы можете получить возвращаемое значение из вызванной функции. Вот очень простой пример:

JavaScript:

<script language="JavaScript">
    function getMyVar()
    {
        return myVar;
    }
</script>

Flash / AS:

import flash.external.ExternalInterface;
var result:string = ExternalInterface.call("getMyVar");
2 голосов
/ 26 мая 2014

Вы также можете предоставить анонимную функцию, которая возвращает значение вашей глобальной переменной в метод ExternalInterface.call следующим образом:

ExternalInterface.call("function(){ return myGlobalVariable; }");
1 голос
/ 22 августа 2012

Я заметил, что ответ Рекса М. немного неполон.

Он был прав насчет использования ...

import flash.external.ExternalInterface;
var result:string = ExternalInterface.call("getMyVar");

Тогда в вашем javascript вы можете использовать

<script language="JavaScript">
    function getMyVar() {
        return myVar;
    }
</script>

Однако, чтобы использовать это, флэш-фильм должен быть в формате HTML, доступ к которому осуществляется через http Не используется файл: //

Вот учебник для общения от ActionScript до Javascript и наоборот. http://www.youtube.com/watch?v=_1a6CPPG-Og&feature=plcp

0 голосов
/ 23 февраля 2015

Вы также можете сделать это:

ExternalInterface.call("eval","getVar=function(obj){return obj}");
var yourVar:String = ExternalInterface.call("eval","getVar(JSvar)");
...