Je fais de nombreux ExternalInterface appels aux méthodes JavaScript et ont une fonction d'aide pour le faire:Déroulant un ... tableau args dans un appel de fonction
protected function JSCall(methodName:String, ...args):void
{
try
{
ExternalInterface.call(methodName, args);
}
… etc …
}
Cependant cela signifie que la méthode JavaScript ne sera passé un argument - le tableau d'arguments - ce qui signifie que je dois modifier le JavaScript pour y répondre, par exemple au lieu de:
function example(argument1, argument2)
{
}
je me retrouve avec:
function example(args)
{
var argument1 = args[0];
var argument2 = args[1];
}
Ce que j'aimerais faire est Déroulez le tableau d'arguments étant transmis à la méthode JSCall
de telle sorte que chaque argument est transmis individuellement au ExternalInterface
appel, tel que:
JSCall('example', ['one', 'two'])
fonctionne comme:
ExternalInterface.call('example', 'one', 'two')
Cela fonctionne en effet, c'est ingénieux bidouille, je l'ai moi-même utilisé plusieurs fois maintenant, semble étrange et 90% des gens ne le comprennent pas quand ils le voient pour la première fois mais bon c'est génial! –
Salut Mims/Ivo, malheureusement, alors que cela ne provoque pas d'erreurs Flash de compilation/exécution, il soulève des erreurs JavaScript lors de l'exécution de l'appel EI. @Ivo - avez-vous un vrai exemple d'utilisation de cette technique? –
En regardant la documentation de l'API pour apply(), je peux voir comment ce qui suit fonctionnerait: 'ExternalInterface.call.apply (null, [nom de la méthode, args])' mais c'est la même chose que directement en utilisant ExternalInterface.call qui doesn ' –