Ich versuche herauszufinden, wie ich meine globale Variable aktualisieren kann. Im Moment schiebe ich meinen ganzen Code in ActionScript 3 Rahmen, anstatt eine externe ActionScript-Datei zu verwenden.(ActionScript 3.0) Meine Funktion aktualisiert die globale Variable nicht über Button Ereignis
Dennoch ist hier mein Code:
import flash.ui.Keyboard;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
var SPEED:int = 10;
var speed_multiplier:int = 1;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
multiplier_two.addEventListener(KeyboardEvent.CLICK, twoButton);
function keyDown(e:KeyboardEvent):void {
switch(e.keyCode) {
case(Keyboard.LEFT):
character.x -= SPEED*speed_multiplier;
collisionDetection(3);
break;
case(Keyboard.RIGHT):
character.x += SPEED*speed_multiplier;
collisionDetection(4);
break;
case(Keyboard.UP):
character.y -= SPEED*speed_multiplier;
collisionDetection(1);
break;
case(Keyboard.DOWN):
character.y += SPEED*speed_multiplier;
collisionDetection(2);
break;
}
}
function twoButton(e:MouseEvent):void {
speed_multiplier = 2;
}
Ich habe bereits eine Spur, um sicherzustellen, dass ordnungsgemäß funktioniert. Das Klickereignis für die Schaltfläche funktioniert einwandfrei. Allerdings wird meine Gloval-Variable für speed_multiplier
nicht aktualisiert, wenn ich auf die Schaltfläche klicke.
Was ist Multiplikator_zwei? – suzuiyue
Slap eine Spur direkt unter 'var speed_multiplier: int = 1;' und sollte es mehr als einmal pro Lauf des Programms auslösen, den Code aus der Timeline in eine * .as-Datei und vergessen Sie über Timeline-Codierung vollständig. (Dies sieht wie ein Code-Flow-Steuerelement Problem aus, der Code auf einem Rahmen wird intern ausgelöst und Sie können nicht genau sagen, wann es ausgelöst wird) – Vesper