ActionScript 2, liste de imbriquée movieclips
quelqu'un a déjà essayé d'obtenir la liste de tous les movieclips (même imbriquée) qui sont sur la Scène à un arrêté (et actuel) image dans Flash 8, 2?
Je n'ai suivantes:
for(i in _root){
if(typeof(_root[i])=="movieclip"){
trace(_root[i]);}
}
Mais c'est bon pour un premier niveau de recherche: qui est, si à l'intérieur de la movieclips vous avez d'autres clips d'animations, vous ne pouvez pas les atteindre. En outre, à l'intérieur d'un movieclip il peut y avoir plus d'un movieclip.
Quelqu'un a déjà essayé de faire ce que je suis en train de faire?
Bye!
OriginalL'auteur | 2009-01-30
Vous devez vous connecter pour publier un commentaire.
Sont que vous venez de tenter de retrouver la trace? Si donc il y a un joli petit sans-papiers utilitaire appelé ObjectDumper qui peut faire cela.
C'est probablement la meilleure explication de la il y
Donc ce que vous pouvez faire est ceci:
Il peut y avoir beaucoup d'extras (fonctions, variables, etc) là, il y a donc des paramètres supplémentaires que vous pouvez utiliser:
Si le ObjectDumper.comme le code est ce elegancia2.com/TestSite/mx/data/binding/ObjectDumper.as je ne suis pas sûr qu'il fonctionne avec des clips d'animations.
vous avez raison, j'ai juste fait une rapide petite expérience avec elle et qu'elle n'est pas d'inscription le movieclips. Je pense que votre seule option est une fonction récursive. Ou si vous avez le contrôle lorsque les clips sont placés, la place de chaque élément dans un tableau quand il passe sur la scène, puis la boucle à travers le tableau et de s'arrêter.
Je n'ai pas de réel contrôle: ils me fournir swf compilé faite par des tiers développeurs de contenu et que je ne les contrôle tous les échéances de tous les movieclips à la currentframe utiliser le magnétoscope commandes.
Le lien n'est plus disponible.
OriginalL'auteur nerdabilly
exactement comme suggéré par inkedmn
printStuff vérifie d'abord si la valeur qu'il trouve est un mc si c'est cela, traces et vérifie ensuite à l'intérieur pour plus de stm.
oh....et désolé d'être un an et quelques changements de retard...
OriginalL'auteur Steffen
Vous pouvez faire quelque chose comme ça par l'ajout d'une fonction de la classe MovieClip:
Que le dernier bit ASSetPropFlags est quelque chose que j'ai trouvé qui permet StopEverything pour itérer sur les classes intégrées comme MovieClip à l'aide de for..in pour chaque champ, même caché les propriétés et les éléments. Sans ASSetPropFlags, StopEverything() peut ne pas atteindre tous les contenus de clip.
OriginalL'auteur Aaron
Mon AS2 expérience est assez limitée (je l'ai fait peu de AS3), mais va ici:
Que si vous avez écrit une fonction récursive, qui, si elle a rencontré un movieclip, serait de regarder à travers tous les objets enfants par les autres clips (et l'a fait de même pour toutes les movieclips il a trouvé là, etc.)? La fonction peut prendre en paramètre de l'objet, ainsi que toute une gamme de "trouvé" des clips qui est ajouté à chaque passage.
Je souhaite que je pourrais écrire le code qui permettrait de faire cela, mais (comme je l'ai dit), je ne suis pas beaucoup d'une AS2 guy :\
Btw, voici notre fonction: fonction stopMCs(mc:MovieClip):Void { mc.stop(); for (i in mc) { if (mc[i] instanceof MovieClip) { mc[i].stop(); stopMCs(mc[i]); } } }
OriginalL'auteur inkedmn
J'ai fait quelque chose de très similaire à cela aujourd'hui. Mes clips où une partie de la navigation et étaient des copies d'un movieclip. Afin de savoir combien il y en avait, j'ai mis une variable sur la scène principale qui a été incrémenté par des actions dans les movieclips. - Je définir un intervalle d'attendre jusqu'à ce que tous les clips ont été compte pour, ensuite utilisé une boucle pour remplir l'interactivité de ma navigation. Fonctionne très bien aussi. Espérons que cela aide quelqu'un.
OriginalL'auteur
La raison de l'AS2.0 sans-papiers ObjectDumper fonction n'a pas d'énumérer les movieclips à la racine est parce qu'elle ignore nameValue paires à l'Objet du niveau de la racine, qui est un flagrant défaut (pour dire le moins), depuis la définition d'un associé de la matrice est un tableau/objet qui est constitué de nameValue paires il est à la racine.
Par exemple: trace(ObjectDumper.toString({myName:"mavaleur"})) //sortie = "". Pas étonnant qu'ils ont quitté cette "fonctionnalité" sans papiers. Franchement, je pense que c'est étonnant qu'il n'y a aucun moyen intégré pour facilement et de manière fiable énumérer tous les le contenu d'un objet à des fins de débogage dans les deux AS2, ni AS3. Si vous recherchez le net, tout ce que vous trouverez sont hack emplois de...dans des boucles qui ne regardent que la racine d'un tableau ... rien récursive.
OriginalL'auteur davea0511