Вызов функции JavaScript с пространством имен из Flash

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

//JavaScript
foo.bar = function(baz) {}

// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);

person Kyle Hayes    schedule 09.02.2010    source источник


Ответы (2)


Документация ExternalInterface.call немного вводит в заблуждение. в нем говорится, что первым параметром должно быть имя функции, что не совсем так. это может быть любая строка, которую можно оценить как правильное выражение JS. По факту

ExternalInterface.call(func, param_1, ... , param_n);

эквивалентно

eval(func)(param_1, ... , param_n);

поэтому вы можете также сделать следующее

ExternalInterface.call("function (foo) { alert(foo); return true; }","test");

этот метод иногда используется для Внедрение Flash JS. надеюсь, это прояснит ситуацию...

person back2dos    schedule 09.02.2010

да. Да, ты можешь.

person Cory Petosky    schedule 09.02.2010
comment
Вопрос был чисто теоретический, так что способ, которым я назвал это выше, правильно для вызова функции пространства имен? - person Kyle Hayes; 09.02.2010