vérifier si l'enfant existe
Bonjour, j'ai une fonction comme suit:
private function seatClickHandler(e:MouseEvent):void{
var check:Check = new Check();
if(e.target.contains(check)){
e.target.removeChild(seat);
}else{
e.target.addChild(check);
}
}
bref je veux vérifier si l'e.cible contient un enfant appelé vérifier. Si c'est le cas je veux e.cible de retirer l'enfant, sinon, je tiens à ajouter de l'enfant. Mais la méthode que j'ai essayé n'a pas l'air de travailler même si je pense que c'est le chemin à parcourir. Des suggestions?
Avez-vous réussi à obtenir tout ce travail?
oui je l'ai fait, désolé, perdu de vue
oui je l'ai fait, désolé, perdu de vue
OriginalL'auteur vincent | 2011-01-04
Vous devez vous connecter pour publier un commentaire.
Lorsque vous déclarez votre Chèque objet Actionscript crée un code de référence pour cet objet spécifique.
Donc la première fois que votre code est exécuté, votre
Check
de l'objet peut être donné une référence de@c0ecc29
. Votreif
instruction vérifie si@c0ecc29
est un composant enfant detarget
. Il ne sera pas, de sorte que leCheck
objet avec référence@c0ecc29
est ajouté àtarget
.La deuxième fois, les
clickHandler
est appelé, une nouvelle instance de laCheck
objet est créé, ce qui aura un nouveau id de référence. Votre cible est la Vérification d'origine de l'objet avec le@c0ecc29
de référence, donc il ne sera pas supprimé.La façon correcte de le faire fonctionner dépend de ce que la cible est (DataGrid, un Groupe, etc.).
EDIT:
En fonction de vos commentaires, je voudrais essayer quelque chose comme cela. Il vérifie pour voir si le
Check
objet est un enfant detarget
et l'ajoute si nécessaire. Puis, quand leCheck
objet est cliqué, il bascule sa visibilité.Si vous avez besoin d'enlever la
Check
objet detarget
au lieu de simplement en changeant sa visibilité, vous pouvez essayer ceci:Est le sprite dans un répéteur ou un groupe de données? Fait-il partie d'une composante plus importante? Etes-vous en essayant de montrer/cacher le "Check" de l'objet?
J'essaie juste de montrer/cacher l'objet, elle n'est pas dans un répéteur ou quoi que ce soit
J'ai mis à jour ma réponse en fonction de vos commentaires. J'espère que cette aide.
OriginalL'auteur Jason Towne
Si l'enfant est nommé
'check'
alors vous devriez être en mesure d'utilisergetChildByName()
. Voir flash.d'affichage.DisplayObject.nomSi vous arrive d'avoir l'enfant dans la mémoire, vous pouvez utiliser
getChildIndex()
OriginalL'auteur John Giotta
case est un nouvel objet dans le champ d'application de cette fonction, de sorte qu'il ne sera pas un enfant de la cible de l'événement.
Ce que vous voulez faire est de déclarer vérifier qu'une variable globale (Et également au casting de la cible que DisplayObjectContainer).
par exemple
Cependant je ne sais pas si c'est exactement ce que vous voulez faire (Il peut exister une seule case). Une meilleure approche serait d'avoir une fonction (peut-être toggleCheck) sur la cible, et l'affichage de l'objet responsable du rendu de la vérification (Et retirer)
OriginalL'auteur Chris Bos
Cela a fonctionné parfaitement bien pour moi dans ma situation:
Il peut ou peut ne pas être exactement ce que vous cherchez.
OriginalL'auteur brenjt