que diriez-vous
swf=document.embeds[0];//or 1 or 2 etc
swfvar1=swf.GetVariable("swfvariable");
swfvar2="something";
swf.SetVariable("swfvariable",swfvar2);
son GetVariable ("swfvar"); avec le nom de la variable sous forme de chaîne et SetVariable ("swfvar", jsval); avec le nom swfvar comme une chaîne et la valeur de ce que vous voulez js
pour exécuter la fonction, il y a 2 façons 1. en utilisant le code ci-dessus avec le swf var, swf.SwfFunc (params); simple, non? Oui.
2.aussi avec le code ci-dessus swf.GetVariable ("SwfFunc (params)"); car il obtient la valeur de la fonction, il exécute tout pour rechercher une valeur de retour, peut être mauvais si les params sont laids avec des citations qui se chevauchent car il y a déjà des citations dans l'appel
personnellement, j'aime la méthode 2 car il peut être utilisé à d'autres fins, comme l'exécution de code. comme celui-ci
swf.GetVariable("
function(){
//whatever
}");
Je trouve cela très utile, mais rappelez-vous que vous devez échapper aux citations dans cette fonction il est en fait comme l'injection d'un eval, mais mieux
presque sûr vous ne pouvez pas, mais il y a autres interfaces que vous pouvez utiliser pour créer des macros pour interagir avec flash, google pour "addon macros firefox flash" ou quelque chose comme ça – yoda
Mais comment ceux qui mettent des jeux flash hack injectent le code? Voir http://userscripts.org/scripts/review/32886. Je n'ai pas compris cette partie var swf = document.embeds [0] || $ ("flashcontent") || single ("// objet [contains (@data, '.swf')]"); unsafeWindow.game = swf; var actions = single ("// div [@ class = 'game_actions']") || single ("// div [@ class = 'channeHolder']") || $ ("header") || $ ("contenu") || document.body; – Rajasankar