2010-12-11 31 views
1

Ok, je veux être en mesure d'accéder à certaines variables de n'importe où dans un fichier Flash ou des fichiers Flash chargés par ce fichier Flash. Comment fait-on ça? Je ne sais pas ce que sont les classes, je ne veux pas savoir ce que sont les classes, je ne veux rien importer, je veux juste pouvoir initialiser et accéder à certaines variables de n'importe où.variables globales dans AS3

Merci de

+0

comme dit le vieil adage: "la connaissance est le pouvoir". – TheDarkIn1978

+0

Ils disent aussi "l'ignorance est la félicité". La vérité est probablement quelque part au milieu. Aussi, puisque je pose une question sur Stackoverflow au lieu de lire un livre de référence, cela signifie probablement que j'ai besoin d'une solution rapide maintenant plutôt que d'une compréhension globale du sujet dans deux semaines. –

Répondre

8

Eh bien, il n'y a plus _global comme il y avait dans AS2 - et puisque vous ne voulez pas utiliser les classes que vous ne pouvez pas utiliser des variables statiques (je peux expliquer ces si vous êtes intéressé). Il vous reste donc à utiliser des variables sur la racine. Par exemple, vous pouvez définir une variable sur la timeline principale comme ceci:

var myGlobal:Number = 100; 

Si vous voulez y accéder ailleurs ... qui est, sur la timeline d'autres movieClips vous devez dire:

MovieClip(root).myGlobal; 

Ce qui si vous n'avez jamais vu auparavant semble probablement absurde. Fondamentalement, nous jetons la racine à un MovieClip pour nous donner accès à ses propriétés dynamiques. Heureusement, vous pouvez le configurer de sorte que vous ne devez pas continuer à écrire MovieClip (root) tout le temps:

// do this on any movieClip where you want to access globals 
var global:MovieClip = MovieClip(root); 

trace(global.myGlobal); 

Donc à la fin de sa seule ligne de code supplémentaire pour obtenir la fonctionnalité à la façon c'était dans AS2.

Modifier

  1. aller à la timeline principale et ajouter ceci à vos actions: var myGlobal: Number = 100;
  2. faire une nouvelle movieClip assurez-vous que son sur la scène
  3. aller dans le nouveau movieClip et ajouter ceci à vos actions:

    var global: MovieClip = MovieClip (root); trace (global.myGlobal);

  4. Testez votre film

+2

désolé, je ne comprends pas du tout. Je retourne à AS2 où je peux tout faire –

+0

heh. Si vous me dites ce que vous ne comprenez pas, je peux essayer et expliquer. Je vais ajouter une modification qui va peut-être éclaircir les choses. – Zevan

+0

Eh bien, je ne comprends pas ce qui est «faire ceci sur un MovieClip» et si je dois faire quoi que ce soit-il-est sur une centaine de clips vidéo? Fondamentalement, chaque bouton et chaque élément de la page est un MovieClip et la plupart d'entre eux ont besoin d'accéder à certaines vérifications globales (comme la langue utilisée, les préférences de l'utilisateur, etc), donc je ne peux pas me tromper avec AS2. . –