9
votes

Obtenir des définitions externesinterface en JavaScript

Y a-t-il un moyen d'obtenir une liste des fonctions exposées à partir d'un objet flash? Par exemple, vous pouvez obtenir une liste de toutes les méthodes d'un objet en exécutant: xxx

Le seul problème est que cela n'exposer aucune méthode enregistrée dans l'API externeInterfaces. Je peux essayer de voir si la fonction existe ( objet [«méthode»] ) et il me dit que c'est une fonction, mais je devrais deviner chaque méthode existante de cette manière.

note: évidemment, je n'ai pas accès à ActionScript.


0 commentaires

5 Réponses :


-1
votes

Mon instinct n'est pas non, l'interface externe est essentiellement une boîte noire, ou une boîte à lettres noire, vous percer les choses et parfois les choses reviennent, mais vous ne pouvez pas ouvrir la porte pour voir ce qui est à l'intérieur.

sans documentation sur ce qui a été exposé dans le SWF, la seule autre suggestion est de décompiler le SWF de jeter un coup d'œil à la source.


0 commentaires

1
votes

Le problème est encore pire: les informations ne sont ni disponibles dans ActionScript. Vous enregistrez une nouvelle fonction comme externeinterface.addcallback ('foo', foo) et vous ne pouvez pas énumérer les rappels déjà enregistrés.


0 commentaires

0
votes

Je suppose que le seul moyen d'y aller est d'analyser le fichier SWF Bytecode et d'essayer de recueillir les appels vers externeinterface.addCallback .

http://www.google.com/search?q=parse+avm2


0 commentaires

1
votes

juste une hypothèse mais voir si cela fonctionne. Toutes les fonctions externes d'interface doivent être définies dans l'espace de noms global. Essayez d'intégrer le SWF dans une page HTML et obtenez toutes les fonctions JavaScript définies pour la page Une fois la page chargée. Liste des fonctions définies par l'utilisateur global en JavaScript?

La liste des fonctions doit être celles définie dans le fichier SWF.


0 commentaires

2
votes

Il suffit de frapper cette question, un peu tendre la fin, semble-t-il, mais je posterai une réponse quand même;) En utilisant IE10 (Windows 7), il a fonctionné parfaitement pour que je puisse répertorier toutes mes méthodes, comme:

var obj = document.getElementById('flashObj');
for(var prop in obj){
  var fx = obj[prop];
  if(obj.hasOwnProperty(prop) && (typeof fx == 'function') && /eval\(instance/.test(fx)){
    console.log(prop)
  }
}


0 commentaires