In animate CC,(actionscript 3) I have 4 frames that need to go in sequence when the "A" or "D" buttons are pressed like so:
(((((1 -> 2 -> 3 -> 4|||and then back|||4 -> 3 -> 2 -> 1)))))
This works fine, but when i am back to frame 1 after the above sequence, clicking next sends me all the way to frame 4 (using trace I identified that all the event listeners triggered and I dont know why)
Below is the code for each frame:
Frame 1
stage.addEventListener(KeyboardEvent.KEY_DOWN, nextFram);
function nextFram(e:KeyboardEvent):void{
if (currentLabel == "home" && e.keyCode == Keyboard.D){
trace("gotobuttonpage");
gotoAndPlay("buttonPage");
removeEventListener(KeyboardEvent.KEY_DOWN, nextFram);
trace("event listener removed");
}
}
stop();
Frame 2
stage.addEventListener(KeyboardEvent.KEY_DOWN, nextFram2);
function nextFram2(e:KeyboardEvent):void{
if (currentLabel == "buttonPage" && e.keyCode == Keyboard.D){
trace("gotovideopage");
gotoAndPlay("videoPage");
removeEventListener(KeyboardEvent.KEY_DOWN, nextFram2);
trace("event listener removed");
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, backFram2);
function backFram2(e:KeyboardEvent):void{
if (currentLabel == "buttonPage" && e.keyCode == Keyboard.A){
trace("backtohomepage");
gotoAndPlay("home");
removeEventListener(KeyboardEvent.KEY_DOWN, backFram2);
trace("event listener removed");
}
}
stop();
Frame 3
stage.addEventListener(KeyboardEvent.KEY_DOWN, nextFram3);
function nextFram3(e:KeyboardEvent):void{
if (currentLabel == "videoPage" && e.keyCode == Keyboard.D){
trace("gotoendpage");
gotoAndPlay("endPage");
removeEventListener(KeyboardEvent.KEY_DOWN, nextFram3);
trace("event listener removed");
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, backFram3);
function backFram3(e:KeyboardEvent):void{
if (currentLabel == "videoPage" && e.keyCode == Keyboard.A){
trace("gotobuttonpage!");
gotoAndPlay("buttonPage");
removeEventListener(KeyboardEvent.KEY_DOWN, backFram3);
trace("event listener removed");
}
}
stop();
Frame 4
stage.addEventListener(KeyboardEvent.KEY_DOWN, backFram4);
function backFram4(e:KeyboardEvent):void{
if (currentLabel == "endPage" && e.keyCode == Keyboard.A){
trace("backtovideopage");
gotoAndPlay("videoPage");
removeEventListener(KeyboardEvent.KEY_DOWN, backFram4);
trace("event listener removed");
}
}
stop();
I also tried using prevFrame(); and nextFrame(); but the same issue occurs leading me to believe my sequential logic is sound but my event listeners are the problem, please can someone shed some light on this for me.