actionscript 3 - Remove click after going to another scene in AS3? -
after switching 2nd scene, keyboard event not work until left-click screen.
how avoid left click can trigger keyboard event directly right after moving 2nd scene?
more details may need:
1st scene
btnstart.addeventlistener(mouseevent.click, initgame); function initgame(e:mouseevent) { gotoandplay(1, "gameplay"); }
2nd scene
use 1 frame. have object. set keyboard event function move object right or left. stop()
frame.
keyboard function doesn't work until give screen mouse click.
var moveup:boolean = false; var movedown:boolean = false; var moveleft:boolean = false; var moveright:boolean = false; var ismoving:boolean = false; stage.addeventlistener(keyboardevent.key_down, movecowboy); function movecowboy(e:keyboardevent) { if (e.keycode == keyboard.w) { moveup = true; if (ismoving == false) mycowboy.gotoandplay(15); ismoving = true; } else if (e.keycode == keyboard.s) { movedown = true; if (ismoving == false) mycowboy.gotoandplay(15); ismoving = true; } else if (e.keycode == keyboard.a) { moveleft = true; if (ismoving == false) mycowboy.gotoandplay(15); ismoving = true; } else if (e.keycode == keyboard.d) { moveright = true; if (ismoving == false) mycowboy.gotoandplay(15); ismoving = true; } } stage.addeventlistener(keyboardevent.key_up, stopcowboy); function stopcowboy(e:keyboardevent) { if (e.keycode == keyboard.w) { moveup = false; } else if (e.keycode == keyboard.s) { movedown = false; } else if (e.keycode == keyboard.a) { moveleft = false; } else if (e.keycode == keyboard.d) { moveright = false; } if (moveup == false && movedown == false && moveleft == false && moveright == false) { if (ismoving == true) mycowboy.gotoandplay(1); ismoving = false; } } var mytimer:timer = new timer(20); mytimer.addeventlistener(timerevent.timer, mytimerfunc); function mytimerfunc(e:event):void { //cowboy movement if (moveup) { mycowboy.y -= 3; mycowboy.rotation = 0; } else if (movedown) { mycowboy.y += 3; mycowboy.rotation = 180; } else if (moveleft) { mycowboy.x -= 3; mycowboy.rotation = -90; } else if (moveright) { mycowboy.x += 3; mycowboy.rotation = 90; } } mytimer.start(); stop();
add @ end of code
stage.focus = stage;
Comments
Post a Comment