2010-11-18 11 views
2

je besoin d'une fonction pour cacher un groupe de zones de texte, je l'ai écrit ce qui suit pour le faire -flash AS3 - Loop - dynamique hide ensemble de zones de texte

var allTxtBoxes:Array = ["title_txt","l1_txt","l2_txt","l3_txt","l4_txt","l5_txt"]; 


for(var i:Number = allTxtBoxes.length - 1; i >= 0; i--) { 


var hiddenT:String = "newOverlibTxt."+allTxtBoxes[i] 
       hiddenT.visible=false;; 

    } 

J'ai essayé ci-dessus de diverses manières, y compris créer une variable mais j'ai juste des erreurs pour dire que je ne peux pas appliquer visible = false à une chaîne, bien que je veuille qu'elle agisse comme un objet.

Des idées s'il vous plaît?

Vive Paul

Répondre

0

Vous pouvez essayer quelque chose le long des lignes de:

var allTxtBoxes:Array = ["title_txt","l1_txt","l2_txt","l3_txt","l4_txt","l5_txt"]; 
for(var i:Number = allTxtBoxes.length - 1; i >= 0; i--) { 
    newOverlibTxt[allTxtBoxes[i]].visible = false; 
} 

Dans votre code d'origine que vous essayez de définir la propriété visible sur une chaîne, ce qui bien sûr ne l'a pas. Dans le code ci-dessus, je référence l'objet newOverlibTxt et j'utilise la syntaxe bracket pour extraire la propriété en fonction du nom. C'est un peu une conjecture, car je ne suis pas sûr de la portée de cet extrait, donc newOverlibTxt pourrait ne pas être disponible.

+0

excellent, bravo pour ça – Dancer

1

Si les zones de texte sont dans un conteneur, vous en boucle sur les conteneurs pourraient les enfants et définir la propriété visible sur chacun. Faites-moi savoir si vous avez besoin de plus d'informations et essayez de donner un exemple.

MISE À JOUR:

Si c'est un MovieClip, essayez quelque chose comme ceci:

public function setAllChildrenAsInvisible (mc:MovieClip) : void 
{ 
    for (var i:int = 0; i < mc.numChildren; i++) 
    { 
     var tempNewOverlibTxt:newOverlibTxt = mc.getChildAt(i) as newOverlibTxt; 
     tempNewOverlibTxt.visible = false; 
    } 
} 

Maintenant, je n'ai pas pu tester ce code, mais le concept devrait travailler pour vous. Si vous ne souhaitez pas rendre invisible tous les enfants, vous pouvez ajouter une instruction if ou switch et comparer l'identifiant de tmpNewOverlibTxt à votre liste.

+0

sonne bien - mais je ne suis pas sûr de savoir comment s'y prendre vraiment - ils sont tous dans un MovieClip avec une classe de newOverlibTxt. – Dancer

+0

merci pour votre aide! – Dancer

Questions connexes