2016-04-13 15 views
0

Ich arbeite an einer App, um Brüche für Kinder zu lernen.Actionscript 3.0 Codierung weniger Zeilen

Ich habe mehrere Kuchen mit Stücken. Alle Pies sind MovieClip-Orte auf der Timeline in Bild 1 und an derselben Stelle auf dem Bildschirm. Abhängig von der Anzahl (2 bis 12) wird ein Kuchen sichtbar und ein Benutzer kann auf die Stücke klicken, um mehrere Stücke entsprechend der Frage auszublenden.

Zum Beispiel: Show 2/9 Stück. So müssen 7 Stück vom Benutzer versteckt werden. Wie ein Kuchen mit 2, 3, 4, 5 Stück und so weiter. Der Code sieht jedes Mal fast gleich aus. Ich frage mich, wie ich das mit weniger Code arbeiten lassen kann.

Wie konvertiert man diesen Code in weniger Zeilen?

if(number == 9) { 
    //pie 9 
    pie9_mc.visible = true; 
    pie9_mc.p9_p1_mc.alpha = 1; 
    pie9_mc.p9_p2_mc.alpha = 1; 
    pie9_mc.p9_p3_mc.alpha = 1; 
    pie9_mc.p9_p4_mc.alpha = 1; 
    pie9_mc.p9_p5_mc.alpha = 1; 
    pie9_mc.p9_p6_mc.alpha = 1; 
    pie9_mc.p9_p7_mc.alpha = 1; 
    pie9_mc.p9_p8_mc.alpha = 1; 
    pie9_mc.p9_p9_mc.alpha = 1; 

    pie_mc = pie9_mc; 
    pie9_mc.p9_p1_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p2_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p3_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p4_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p5_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p6_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p7_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p8_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
    pie9_mc.p9_p9_mc.addEventListener(MouseEvent.CLICK, hidePiece); 
}  

function hidePiece(e: MouseEvent): void{ 
    piece_mc = MovieClip(e.currentTarget); 
    var tweenFadeOut:Tween = new Tween(piece_mc, "alpha", None.easeOut, 1, 0.5, 2, true); 
} 

Antwort

1
pie9_mc["p9_p1_mc"].alpha = 1; 

helfen wie

pie9_mc.p9_p1_mc.alpha = 1; 

Daher Code umwandeln weniger Zeilen wie Code folgen.

if(number == 9) { 
    //pie 9 
    pie9_mc.visible = true; 
    for (var i:int=1; i<=number; i++){ 
     var foo: String = "p"+number.toString()+"_p"+i.toString()+"_mc"; 
     pie9_mc[foo].alpha = 1; 
     pie9_mc[foo].addEventListener(MouseEvent.CLICK, hidePiece); 
    } 

    pie_mc = pie9_mc; 
} 

function hidePiece(e: MouseEvent): void{ 
    piece_mc = MovieClip(e.currentTarget); 
    var tweenFadeOut:Tween = new Tween(piece_mc, "alpha", None.easeOut, 1, 0.5, 2, true); 
} 
+0

Vielen Dank! Genau was ich brauchte um den Code zu vereinfachen. – Henrique

Verwandte Themen