Question

Puis-je utiliser ExternalInterface pour appeler une fonction JavaScript espaces de noms?

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

// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
Était-ce utile?

La solution

La documentation de ExternalInterface.call est un peu trompeur. il indique le premier paramètre doit être un nom de fonction, ce qui est la vérité. il peut être une chaîne qui peut être évaluée comme l'expression d'un proprer. En fait

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

est équivalent à

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

vous pouvez tout aussi bien faire ce qui suit

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

Cette technique est parfois utilisée pour flash injection JS . espérons que cela clarifie les choses ...

Autres conseils

Oui. Oui, vous pouvez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top