Вызов JavaScript-функции в пространстве имен из Flash - PullRequest
1 голос
/ 09 февраля 2010

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

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

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

Ответы [ 2 ]

2 голосов
/ 09 февраля 2010

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

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

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

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

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

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

этот метод иногда используется для Flash JS-инъекции . надеюсь, что это проясняет вещи ...

1 голос
/ 09 февраля 2010

Да. Да, вы можете.

...