scène.addChild et de la dispersion
J'ai une fonction simple qui, lorsque vous cliquez sur un bouton, ajoute un movie clip sur la scène dans un aléatoires x et y de la position. La question que je vais avoir, c'est que les nouveaux clips éventuellement couvrir le bouton. J'ai essayé de changer le z-index de la nouvellement créée mc-dessous de la z-index du bouton, mais cela ne résout pas le problème. Comment fait-on arrêter le nouveau mc de couvrir un élément qui existe déjà.
friends1_btn.addEventListener(MouseEvent.CLICK, friendMaker);
function friendMaker(evt:MouseEvent):void {
var newFriend:Teddy = new Teddy();
newFriend.x = Math.random()*stage.width;
newFriend.y = Math.random()*stage.height;
newFriend.z = 0;
stage.addChild(newFriend);
}
OriginalL'auteur staypuffinpc | 2009-09-30
Vous devez vous connecter pour publier un commentaire.
Ou sinon, peut - être plus de l'utilisation à long terme - n'ont pas tous les objets comme les enfants de la même couche que le bouton.
Ainsi, au lieu de:
Ont:
Ou encore:
Où
object layer
etbutton layer
pourrait simplement êtreSprite
objets, c'est à dire:et ainsi de suite.
Je pense que vous trouverez que c'est plus utile d'entrer dans cette façon de penser sur le long terme plutôt que juste pour passer le z-indices autour de.
Par ailleurs, la mise à jour de Flash Player 10 ne ont un
.z
bien (même si ce n'est pas dans la documentation) - Ruben dit, il est utilisé pour le nouveau transformations 3D. Malheureusement 3D transforme en l'absence de soutien que ce soit pour z-tri ou z superposition, afin de ne pas les aider dans ce cas.pour une raison quelconque, je voulais voir si je pouvais l'obtenir sans avoir à utiliser des Sprites, mais c'est la seule réponse ici qui fait fonctionné comme prévu, donc bravo, IanT. Par conséquent, sur votre code, j'ai besoin d'ajouter une ligne supplémentaire. Pour obtenir le newFriend à apparaître, j'ai besoin de l'écrire: objectLayer.addChild(newFriend);
Une chose de plus: le petit visuels que vous avez créé ci-dessus ont été très utiles pour comprendre ce que cette réponse est de faire, donc merci pour ça.
Pas de probs - heureux d'être de l'aide.
OriginalL'auteur IanT
Je sais que cette question a déjà été posée, mais vous pouvez également utiliser addChildAt() pour spécifier les index que vous souhaitez ajouter la classe DisplayObject, vous pouvez utiliser numChildren, ou de garder votre propre record de l'index à laquelle ajouter.
Vous ne souhaitez PAS continuer à ajouter le bouton d'origine à la scène car cela permet de garder le déclenchement de l'événement.ADDED_TO_STAGE, il entraînera aussi vacillante que le bouton sera retiré de la scène brièvement en raison de la façon dont l'écran liste des travaux.
J'ai vraiment un moyen rapide de tester ce serait de faire, soit de l'étape suivante.contient(friends1_btn) qui renvoie true si elle est contenue, mais pour savoir ce que le parent est tout simplement trace(friends1_btn.parent), laissez-moi savoir ce que vous obtenez
OriginalL'auteur enzuguri
MovieClip n'ont pas de propery nommé " z " en AS3 (référence)
Vous devriez lire sur la nouvelle affichage de la liste modèle pour l'AS3. Il devrait vous aider à comprendre comment les objets peuvent être superposées l'une sur l'autre.
Une chose que je n'ai pas de démontrer dans mon code d'origine qui était de retracer le z-index de ces mcs et le btn et ils se lisent comme prévu. Donc, as3 était en leur attribuant un z-index w/o erreur, mais ce n'était pas la bonne propriété à modifier. Comme tout le monde ici est de souligner, la superposition est en fait pris en charge dans la liste d'affichage (pourquoi n'est-il pas une "couche" de la propriété, hein?).
Merci Kishi. J'ai mis à jour mon flash de référence signet.
OriginalL'auteur jessegavin
swapChildren() devrait le faire.
OriginalL'auteur mrkishi
Cette façon de s'assurer que le bouton est le très haut point, peu importe ce que vous faites. Appeler la méthode addChild sur quelque chose qui est déjà ajouté (dans le même conteneur) readd vers le haut.
Vous pouvez également faire la même chose en remplaçant
avec
OriginalL'auteur Allan
Le "z" de la propriété d'un MovieClip est utilisé pour les transformations 3D dans Flash Player 10 - au lieu de cela, vous devez définir l'enfant de l'indice de la
MovieClip
explicitementUne bonne façon est de définir manuellement l'indice de
friends1_btn
à l'avant:(Une note de côté, si vous désirez aléatoirement la position d'un MovieClip sur la Scène, vous devez utiliser
stage.stageWidth
etstage.stageHeight
, sinon vous êtes seulement la largeur et la hauteur des objets sur la scène, pas à la scène elle-même).ok, pour plus de précisions, de ce fait générer la newFriend objet sur la scène, mais il était encore au-dessus de la touche, en plus de l'obtention de ladite erreur.
OriginalL'auteur Reuben