Могу ли я использовать ExternalInterface для вызова функции JavaScript с пространством имен?
//JavaScript
foo.bar = function(baz) {}
// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
Могу ли я использовать ExternalInterface для вызова функции JavaScript с пространством имен?
//JavaScript
foo.bar = function(baz) {}
// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
Документация 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. надеюсь, это прояснит ситуацию...
да. Да, ты можешь.