Wie ein Mann Stick laufen zu machen, wenn eine Taste gedrückt Stack-Überlauf

Ich habe einen Movieclip mit Namen stickman. Darin habe ich eine Animation durch eine Folge von Bewegung in everyframe zeichnen, so dass stickman laufen kann. Nun, was ich will, ist, dass, wenn ich eine Taste drücken, wird der Stick Mann von links nach rechts laufen und wenn ich die Taste loslassen, wird es zu stoppen. Dies ist mein Code:







Allerdings, wenn ich gedrückt und hielt einen Schlüssel, zog sie von links nach rechts, ohne animierte Lauf.

Wie kann ich es beheben? Danke im Voraus.

EDIT: Ich habe einen Movieclip namens Charakters mit 3 Movieclip mit Namen: Stehen. Laufen und Springen. beziehungsweise. Wenn ich Pfeiltaste gedrückt, wäre es springen, aber wenn ich den Schlüssel sofort freigegeben wird, hat es nicht als Sprung hoch springt Movieclip nicht seine Frames beenden konnte. Dies ist der Code:

Wie kann ich das beheben, dass?

Zunächst einmal, ich hoffe RunningMan eine Instanz der Klasse ist, nicht die Klasse selbst. Und wenn es eine Instanz ist, sollten Sie wirklich gemeinsamen Namenskonventionen folgen, wenn Sie Ihren Code mit anderen teilen (wie Sie es jetzt tun), so wäre es Runningman sein.







So ersten, machen den ersten Frame der Zeitleiste des runnigMan ein Bild des Mannes stehen nach wie vor und nennen Sie es „noch“ oder so etwas. benennen Sie dann die zweite „running“ und erweitern, dass wie 20 Frames oder wie lange Ihre Animation ist. am letzten Frame werden Sie Timeline-Code verwenden. nur eine Zeile von gotoAndPlay ( „running“) wird diese Frames von 2 bis 20 (oder was auch immer) einer Schleife verursachen. Wenn Sie sagen, die Zeitleiste Rahmen gehen 1 von außerhalb des Timeline-Code, es nicht mehr gewohnt Schleife und wird auf dem Rahmen des Mannes stehen bleiben noch. Also von außen, wenn Sie die Schleife beginnen soll:

Oder man könnte es aus dem Inneren der RunningMan Klasse tun

Und man konnte sie verwenden nur durch diese Funktionsnamen mit den zu ersetzen Sie, wenn Sie den Code ex (statt play (), es wäre startRunAnimation sein ())

Was Sie für dieses Problem tun können, ist eine boolesche Variable haben für, wenn Ihr Charakter ist in der Luft (irgendwo in Ihrem Code, wo Sie Kollision tun Erkennung mit dem Boden oder wo man die Schwerkraft behandeln - aber es eingerichtet ist), so dass dieser Teil der Codes wissen, wenn Ihr Charakter in der Luft ist. Und dann kann man einfacher Test für diese jedoch so, wie Sie sie brauchen.

Obwohl, wenn Sie Ihren Charakter aus einem Collidable Objekt nicht inheirt die Schwerkraft hat, Reibung usw. dann würden Sie die inAir Eigenschaft jeglicher anderen Klasse machen müssen, öffentliche oder Getter-Funktion für sie machen - so dass Sie es hier zugreifen können. Ich hoffe das hilft.







In Verbindung stehende Artikel