Closed RickyAbell closed 13 years ago
Is it possible that you are trying to access a character id that is not defined? Can you send me that SWF?
I'm not explicitly accessing the timeline dictionary myself with a character id. All I did was pass a bytearray from my .swf to a new instance of SWF and it hit this error. I checked and the .swf is not corrupted or obfuscated. I've emailed the .swf to you.
Yeah the bug manifests itself in the part of the code that creates the layer info, which is actually not really needed for most applications (and can be very heavy on the cpu for bigger/complicated swfs). I am going to make that part opt-in.
The bug's origin is elsewhere though, and, as you said, seems only to kick in with certain kinds of swf. Consider it fixed tomorrow latest. Watch this space for updates, and thanks for reporting!
Oh ok I see. Thanks for looking into it!
Turned out that PlaceObject3 tags weren't handled correctly by SWFTimeline.processTag(), causing the RTE in SWFTimeline.buildLayers().
I committed a fix. Please let me know if that solves your problem.
Thanks for reporting, good find!
Yip all working now :) Thanks for fixing it!
I've been playing around with as3swf and am very impressed with what it can do. I've tested it on a number of SWFs and most of them work properly, but I've run into an error.
Here's the stacktrace: ReferenceError: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value. at com.codeazur.as3swf::SWF/getTagByCharacterId()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWF.as:48] at com.codeazur.as3swf::SWFTimeline/getTagByCharacterId()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWFTimeline.as:86] at com.codeazur.as3swf::SWFTimeline/buildLayers()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWFTimeline.as:324] at com.codeazur.as3swf::SWFTimeline/parseFinalize()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWFTimeline.as:175] at com.codeazur.as3swf::SWFTimeline/parse()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWFTimeline.as:92] at com.codeazur.as3swf::SWF/parse()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWF.as:68] at com.codeazur.as3swf::SWF/loadBytes()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWF.as:55] at com.codeazur.as3swf::SWF()[/Users/claus/Projects/as3swf/src/com/codeazur/as3swf/SWF.as:34] at com.SWFScraper::SWFScraper/processByteArrays()[C:\Users**\SWFDetailsExtractor\src\com\SWFScraper\SWFScraper.as:105] at com.SWFScraper::SWFScraper/loadedSWF()[C:\Users**\SWFDetailsExtractor\src\com\SWFScraper\SWFScraper.as:88]
and the console output in FlashDevelop: WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 299 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 325 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 350 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 368 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 384 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 402 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 502 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 641 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 654 WARNING: parse error: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value., Tag: DefineSprite, Index: 693 [Fault] exception, information=ReferenceError: Error #1069: Property undefined not found on AS3.vec.Vector.com.codeazur.as3swf.tags::ITag and there is no default value.
Is there any known reason it would try pull a value from the timeline dictionary that doesn't exist? Thanks