From c10417ddb861b32acd6bfa839f3578fd42da6086 Mon Sep 17 00:00:00 2001 From: David Wendt Date: Mon, 24 Jan 2022 20:47:43 -0500 Subject: [PATCH] tests: `as3_movieclip_displayevents_timeline` should log events on the root movie clip too --- .../MainTimeline.as | 10 ++++ .../output.txt | 45 ++++++++++++++++++ .../movieclip_displayevents_timeline/test.fla | Bin 8157 -> 8178 bytes .../movieclip_displayevents_timeline/test.swf | Bin 2513 -> 2479 bytes 4 files changed, 55 insertions(+) create mode 100644 tests/tests/swfs/avm2/movieclip_displayevents_timeline/MainTimeline.as diff --git a/tests/tests/swfs/avm2/movieclip_displayevents_timeline/MainTimeline.as b/tests/tests/swfs/avm2/movieclip_displayevents_timeline/MainTimeline.as new file mode 100644 index 000000000..9720ba852 --- /dev/null +++ b/tests/tests/swfs/avm2/movieclip_displayevents_timeline/MainTimeline.as @@ -0,0 +1,10 @@ +package { + import flash.display.MovieClip; + import flash.events.Event; + + public class MainTimeline extends EventWatcher { + public function MainTimeline() { + super(); + } + } +} \ No newline at end of file diff --git a/tests/tests/swfs/avm2/movieclip_displayevents_timeline/output.txt b/tests/tests/swfs/avm2/movieclip_displayevents_timeline/output.txt index e7cd881d7..81bee8d74 100644 --- a/tests/tests/swfs/avm2/movieclip_displayevents_timeline/output.txt +++ b/tests/tests/swfs/avm2/movieclip_displayevents_timeline/output.txt @@ -1,83 +1,128 @@ blue constructed blue (frame 1):[Event type="added" bubbles=true cancelable=false eventPhase=2] blue (frame 1):[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2] +root1 constructed +root1 (frame 1):[Event type="added" bubbles=true cancelable=false eventPhase=2] +root1 (frame 1):[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2] blue (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline frame 1 //BlueSymbol frame 1... blue (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 2):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 2):[Event type="added" bubbles=true cancelable=false eventPhase=3] green constructed green (frame 1):[Event type="added" bubbles=true cancelable=false eventPhase=2] blue (frame 2):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 2):[Event type="added" bubbles=true cancelable=false eventPhase=3] green (frame 1):[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 2):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline frame 2 //BlueSymbol frame 2... //GreenSymbol frame 2... blue (frame 2):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 2):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 3):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 3):[Event type="added" bubbles=true cancelable=false eventPhase=3] orange constructed orange (frame 1):[Event type="added" bubbles=true cancelable=false eventPhase=2] +root1 (frame 3):[Event type="added" bubbles=true cancelable=false eventPhase=3] orange (frame 1):[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 3):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline frame 3 //this.blue.green.destroy(); //this.blue.gotoAndPlay(0); blue (frame 1):[Event type="removed" bubbles=true cancelable=false eventPhase=3] +root1 (frame 3):[Event type="removed" bubbles=true cancelable=false eventPhase=3] blue (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 3):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //BlueSymbol frame 1... //OrangeCircle frame 1... blue (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 3):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] //End MainTimeline frame 3 blue (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 3):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 4):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 4):[Event type="added" bubbles=true cancelable=false eventPhase=3] green constructed green (frame 1):[Event type="added" bubbles=true cancelable=false eventPhase=2] blue (frame 2):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 4):[Event type="added" bubbles=true cancelable=false eventPhase=3] green (frame 1):[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 4):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline frame 4 //BlueSymbol frame 2... //GreenSymbol frame 2... blue (frame 2):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 4):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 5):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] blue (frame 2):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 5):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] orange (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] green (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline frame 5 //End MainTimeline frame 5 +root1 (frame 5):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 5):[Event type="removed" bubbles=true cancelable=false eventPhase=3] +root1 (frame 5):[Event type="removed" bubbles=true cancelable=false eventPhase=3] +root1 (frame 6):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 6):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline Frame 6 +root1 (frame 6):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 7):[Event type="enterFrame" bubbles=false cancelable=false eventPhase=2] +root1 (frame 7):[Event type="added" bubbles=true cancelable=false eventPhase=3] purple constructed purple (frame 1):[Event type="added" bubbles=true cancelable=false eventPhase=2] +root1 (frame 7):[Event type="added" bubbles=true cancelable=false eventPhase=3] purple (frame 1):[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2] +root1 (frame 7):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] purple (frame 1):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] //MainTimeline Frame 7 //this.purple.gotoAndPlay(5) purple (frame 5):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="added" bubbles=true cancelable=false eventPhase=3] purple (frame 5):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="added" bubbles=true cancelable=false eventPhase=3] purple (frame 5):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="added" bubbles=true cancelable=false eventPhase=3] purple (frame 5):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="added" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] purple (frame 5):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 7):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] purple (frame 5):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] //this.purple.gotoAndPlay(3) purple (frame 3):[Event type="removed" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="removed" bubbles=true cancelable=false eventPhase=3] purple (frame 3):[Event type="removed" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="removed" bubbles=true cancelable=false eventPhase=3] +root1 (frame 7):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] purple (frame 3):[Event type="frameConstructed" bubbles=false cancelable=false eventPhase=2] +root1 (frame 7):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] purple (frame 3):[Event type="exitFrame" bubbles=false cancelable=false eventPhase=2] diff --git a/tests/tests/swfs/avm2/movieclip_displayevents_timeline/test.fla b/tests/tests/swfs/avm2/movieclip_displayevents_timeline/test.fla index 8ed648cf40833a8e3529a44df9f1845c09aab5d1..126630b91f5b8670e94262de1de26127072defad 100644 GIT binary patch delta 3762 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 delta 3777 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