2

JavaScript et Flash Player peuvent échanger des données via le mécanisme ExternalInterface de Flash: vous enregistrez des fonctions ActionScript que vous aimeriez pouvoir appeler à partir de JavaScript.Comment exposer l'interface JavaScript pour un objet Flash intégré?

Ma question: Comment puis-je savoir quelles sont les fonctions ActionScript d'un objet Flash disponibles pour moi à partir de JavaScript (en supposant qu'elles ne soient pas documentées)?

Existe-t-il une manière programmatique de le faire en JavaScript?

Merci!

Répondre

1

vous ne pouvez pas les énumérer directement (ils ne seront pas inscrits dans une boucle for..in), mais vous pouvez tester chacun explicitement ...

var swf = document.getElementById('theID'); 
alert('someMethod' in swf); // will alert true if 'someMethod' is exposed via ExternalInterface.addCallback 

cela pourrait échouer si appelé pendant $ (document) .ready ou window.onload - le swiff doit être 'initialisé' (chargé et enregistré) pour que les méthodes exposées soient disponibles du tout.

+0

Mais n'aurai-je pas encore "deviner" les bons noms de méthodes avec cette technique? Je ne pense pas que cela fera l'affaire. Merci quand même! – Mark

+0

vous pouvez toujours XMLHttpRequest une copie du fichier .swf, le décompresser avec une routine zlib/gz/uncompress basée sur javascript (ils existent) et soit le chercher pour tester les chaînes, ou écrire un analyseur super simple, copier une source d'ici https : //github.com/CyberShadow/RABCDAsm – Orwellophile