2017-09-08 3 views
-2

Ich arbeite an einem Spiel in Actionscript, und der folgende Code ist in einer Funktion enthalten, die überprüft, ob eine Taste auf der Tastatur gedrückt wurde. Sie können alle anderen Variablen ignorieren, da das einzige, was wichtig ist, ist "OrbRing", ein Movieclip, der aus der Bibliothek geladen wird.Actionscript 3 addChild ignoriert jeden zweiten Versuch

Wenn die Taste TAB gedrückt wird, wird die Länge einer Leiste auf dem Bildschirm um einen festgelegten Wert verringert, und auf dem Bildschirm wird ein Ring angezeigt. Wenn dies zum ersten Mal versucht wird, funktioniert alles normal: Der Ring erscheint und die Balkenlänge wird verringert.

Allerdings wird die Sekunde Zeit versucht, die Balkenlänge wird verringert, aber das OrbRing wird nicht angezeigt.

Merkwürdigerweise wird die dritte Zeit versucht, alles funktioniert wieder normal, genau wie beim ersten Mal.

Aber dann die vierte Zeit, die Probleme sind die gleichen wie der zweite Versuch.

Also jeder gerade Versuch, der addChild-Code scheint ignoriert zu werden, aber die Funktion läuft immer noch, da die Balkenlänge jedes Mal abnimmt. Und bei jedem seltsamen Versuch führt die Funktion normal aus.

Ich habe keine Ahnung, warum das passiert, und ich bekomme keine Fehlermeldungen. Jede Hilfe oder Ideen, die dies beheben könnten, würden sehr geschätzt werden.

if(levelseven==true) { 
    if (mykey.keyCode==Keyboard.TAB) { 
     if(gear1==true && CPUBAR1_mc.CPUBARYLW_mc.width>=215) { 

      CPUBAR1_mc.CPUBARYLW_mc.width-=215; 
      addChild(OrbRing); 
      OrbRing.x=Orb_mc.x; 
      OrbRing.y=Orb_mc.y; 
      OrbRing.gotoAndPlay(1);  
     } 
    } 
} 
+0

Haben Sie überprüft, ob Sie die Bedingung sogar mit einer Ablaufverfolgung treffen? Meine erste Annahme ist, dass entweder gear1 falsch ist oder die Breite des Movieclip unterhalb von 215 ist. – DodgerThud

+0

Brauchen Sie mehr Kontext hier. Ich müsste die beteiligten Funktionen sehen, um weiter zu helfen. – quantomworks

+0

Welcher Code wird verwendet, um den Ring verschwinden zu lassen? – BadFeelingAboutThis

Antwort

-1

Ich habe die Lösung gefunden. Aus welchem ​​Grund auch immer (ich weiß immer noch nicht warum), der Movieclip blieb bei jedem geraden Versuch im ersten Frame hängen. Einfach einen gotoAndPlay (2) hinzufügen; Anleitung dafür, dass der Movieclip jedes Mal abgespielt wird. Vielen Dank für Ihre Hilfe.