create js as3 flash canvas js frame code runs once

124 Views Asked by At

The js code generated in the files output in Adobe Animation for HTML5 Canvas contains an object for the movie clip that include the code that is to be run in each frame.

(lib.cdseacc02_07 = function(mode,startPosition,loop) {
    // timeline functions:
    this.frame_0 = function() {
        if(typeof showNarration !== "undefined"){ showNarration(1); }
    }
    this.frame_644 = function() {
        playSound("02_07_01wav");
    }
    this.frame_652 = function() {
        this.closeBtn_1.addEventListener("click", closepopup_1.bind(this));
    }
    this.frame_738 = function() {
        this.stop();
    }
}).prototype = p = new cjs.MovieClip();

If gotoAndPlay is called on the movieclip from this code the code on the frame function is not run on the frames as they are passing by, this frame code only works the first time the timeline is played. Is there any way to make it so that the code on the frames can run each time the playhead passes that frame even if it was through a gotoAndPlay call in the code?

1

There are 1 best solutions below

0
Lanny On

Frame actions should absolutely be played each time the timeline passes that frame, whether during gotoAndPlay or gotoAndStop. In fact, this sometimes causes issues where things event listeners are added multiple times (each time the framehead passes the script, like on your frame 652).

Can you post a simplified example of this not working?