ActionScript 3.0 movie clips and components created in Flash CS3 Professional incorrectly play through timeline
Issue
In Flash Player 9 version 9.0.28.0 and earlier, ActionScript 3.0 movie clips and components exported by Adobe Flash CS3 Professional incorrectly play through their timeline when ActionScript is used to prevent the timeline from playing. ActionScript 3.0 components will appear to flicker between their normal state and their skin settings.
This issue only occurs in specific circumstances where a movie clip or component is placed on the stage on a keyframe other than the first keyframe, or if the object is removed later in the timeline.
Reason
For objects that are set up in the manner listed above, ActionScript on Frame 1 is incorrectly processed in Flash Player 9.0.28.0 and earlier. This results in the timeline playing through rather than processing actions like stop().
Solution
This issue has been corrected in Flash Player 9.0.45.0. Flash CS3 Professional ships with the updated player, and developers will not encounter the behavior when testing with this version or later. Since users viewing the content may have an older version of the player, developers using Flash CS3 Professional that plan to use ActionScript 3.0 components should detect for the minor version of Flash Player and use Express Install or other upgrade mechanisms to inform users to update Flash Player. The Flash Player detection script is configured with Flash CS3 Professional to look for the appropriate minor version.
To work around the issue in Flash CS3 Professional to target Flash Player 9.0.28.0 or earlier, you can also implement your movie clips and components to avoid the issue in one of the following ways:
When using class files:
Add content to Frame 1 of the movie clip. If you need more than one frame in the movie clip, add frames to the timeline but keep the content the same in Frames 1 and 2. Any actions you would have assigned to Frame 1 can then be added to a blank keyframe in Frame 2 . If the movie loops, use ActionScript to send the playhead back to Frame 2 when the loop is needed.- When using class files:
If you use class files, this issue will affect you if you attempt to stop the movie on Frame 1. To make the movie stop in Frame 1, assign a function to handle the
DisplayObject.addedToStageevent that will trigger when the instance is added to a display list.
Note: If you remove and re-add the movie to a display list, the event will be triggered again.
Additional Information
"ActionScript 3.0 on first frame of movie clips not executed" (TechNote kb401350)
"ActionScript 3.0 classes missing when playhead skips class export frame" (TechNote kb401348)
This content requires Flash
To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.
Download the free Flash Player now!
