2010-06-23 21 views
0

On m'a dit qu'il y a un site de jeux que vous avez juste besoin de télécharger votre jeu flash et il détecte automatiquement les scores et ajoute les scores à un table des meilleurs scores en ligne.flash: existe-t-il un moyen de surveiller un flash chargé et de regarder tous les changements variables

est-ce possible?

puis-je en quelque sorte utiliser javascript ou un 2ème fichier flash pour charger un flash et de déboguer toutes ses variables sans avoir la source?

Je suppose que si je peux déboguer le fla chargé en utilisant Adobe Flash, je serai en mesure de déboguer si j'ai toujours la source. mais si je n'ai que le swf lui-même, c'est possible?

grâce

Répondre

1

Vous pouvez utiliser flash.utils.describeType pour obtenir une description d'une classe, par exemple

var aClass:TestClass = new TestClass(); 
trace(describeType(aClass)); 
/* 
Traces the following: 
<type name="TestClass" base="Object" isDynamic="false" isFinal="false" isStatic="false"> 
    <extendsClass type="Object"/> 
    <variable name="A" type="String"/> 
</type> 
*/ 

C'est la seule façon que je connaisse de faire facile réflexion en AS3. Certaines restrictions, cependant:

  • ne liste pas membres privés
  • ne vous permet pas d'examiner les variables sur la pile
  • ne vous donne pas accès au code cadre

Notez que je l'ai dit facile ci-dessus. Il y a eu quelques interestingwork dans l'émulation/décompilation des fichiers SWF en Javascript; vous pourriez vouloir vérifier.

+0

Si je comprends bien, vous avez expliqué comment décrire une classe dans le swf en cours d'exécution. Je veux être en mesure de surveiller un fichier swf différent. – ufk

+1

Vous pouvez écrire un fichier SWF qui charge d'autres fichiers SWF, puis les examine. – Ender