Kyle Hayes
Kyle Hayes

Reputation: 5302

Calling a Namespaced JavaScript Function from Flash

Can I use ExternalInterface to call a namespaced JavaScript function?

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

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

Upvotes: 1

Views: 379

Answers (2)

back2dos
back2dos

Reputation: 15623

The documentation of ExternalInterface.call is a little misleading. it states the first parameter must be a function name, which is not the whole truth. it can be any string that can be evaluated as a proprer JS expression. In fact

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

is equivalent to

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

so you may just as well do the following

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

this technique is sometimes used for Flash JS injection. hope this clarifies things ...

Upvotes: 2

Cory Petosky
Cory Petosky

Reputation: 12666

Yes. Yes you can.

Upvotes: 1

Related Questions