On 3/4/07, ying lcs <[EMAIL PROTECTED]> wrote: > On 3/4/07, Mark Winterhalder <[EMAIL PROTECTED]> wrote: > > On 3/4/07, ying lcs <[EMAIL PROTECTED]> wrote: > > > I am trying to investigate why certain swf files (the ones find in > > > public sites) can't play on the gnash (an opensource flash player). > > > > That's /very/ legitimate. :) > > > > That tag (PlaceObject) places an object on the stage -- it does /not/ > > define that object. As I said before, try to find where if is defined. > > Simply search for its ID (131), I think that tag is called > > DefineObject, or DefineShape, or DefineSomething. > > > > However, some of those protective mechanisms I talked about might > > involve making the SWF non-standard, and relying on the tolerance of > > the Adobe player. About like those copy protection mechanisms on > > non-RedBook music CDs that play fine on your stereo but not in your > > car. I'm not saying this is the case here, but you might encounter > > them. I've come across one that I couldn't even use Swfmill with, the > > same might be true for Gnash. When in doubt, try to contact the > > original developer to find out if s/he used some sort of scrambler > > before you put too much effort into it. Of course it would be nice if > > those worked with Gnash, too, but I would give vanilla-SWFs a higher > > priority. > > > > Mark > > > Okay, I find the object 'movie' inside the object 'player'.
<DefineSprite objectID="131" frames="1"> //..... <PlaceObject2 replace="0" depth="1" objectID="130" name="movie"> <transform> <Transform scaleX="1.000000000000000" scaleY="1.000305175781250" transX="0" transY="-317"/> </transform> </PlaceObject2> //......... </DefineSprite> <PlaceObject2 replace="0" depth="1" objectID="131" name="player"> <transform> <Transform transX="4500" transY="3700"/> </transform> </PlaceObject2> But the question remains is why Gnash can't find the function setMovie() when it tries to execute this: Flare output: frame 1 { movie = player.movie; movie.base_url = '/'; movie.tracker_cls = logic.PlayerTracker; movie.setMovie(video_id, undefined, undefined, l, t); movie.playMovie(); Stage.scaleMode = 'noScale'; Stage.addListener(this); onResize = function () { player.resize(Stage.width, Stage.height); }; In the flare output, setMovie is defined here: movieClip 141 __Packages.logic.Movie { logic.Movie = v1; logic.Movie extends MovieClip; var v2 = v1.prototype; v2.initController = function () { //........ }; v2.setMovie = function (_video_id, image_url, movie_url, l, _track_id, eurl, append_vars) { //.......... } any more help is appreciated... Thank you again. > Thank you for your help. > > I have use flare to decompile the swf file to get the actionscript source > code. > > In gnash, > it fails here: > > frame 1 { > movie = player.movie; > movie.base_url = '/'; > movie.tracker_cls = logic.PlayerTracker; > movie.setMovie(video_id, undefined, undefined, l, t); > movie.playMovie(); > Stage.scaleMode = 'noScale'; > Stage.addListener(this); > onResize = function () { > player.resize(Stage.width, Stage.height); > }; > > When it tries to execute the line 'movie.setMovie', it can't find the > method 'movie.setMovie'. > > So I need to find out where is 'player.movie' defined. > > So I use swfmill to find out what is 'player.movie'. > > Here is the object for 131, but does this has a 'setMovie' method? > otherwise, what should gnash look for 'setMovie' method? > > <DefineSprite objectID="131" frames="1"> > <tags> > <DoAction> > <actions> > <Dictionary> > <strings> > <String value="movie"/> > <String value="controller"/> > <String value="registerMovie"/> > <String value="useHandCursor"/> > <String value="resize"/> > <String value="_y"/> > <String value="_height"/> > <String value="resize_width"/> > </strings> > </Dictionary> > <PushData> > <items> > <StackDictionaryLookup index="0"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackInteger value="1"/> > <StackDictionaryLookup index="1"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="2"/> > </items> > </PushData> > <CallMethod/> > <Pop/> > <PushData> > <items> > <StackDictionaryLookup index="0"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="3"/> > <StackBoolean value="0"/> > </items> > </PushData> > <SetMember/> > <PushData> > <items> > <StackDictionaryLookup index="4"/> > </items> > </PushData> > <DeclareFunction2 name="" argc="2" regc="3" > preloadThis="0" suppressThis="0" preloadArguments="1" > suppressArguments="0" preloadSuper="1" suppressSuper="0" > preloadRoot="1" preloadParent="0" preloadGlobal="0" reserved="0"> > <args> > <Parameter reg="1" name="w"/> > <Parameter reg="2" name="h"/> > </args> > <actions> > <PushData> > <items> > <StackDictionaryLookup index="1"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="5"/> > <StackRegister reg="2"/> > <StackInteger value="2"/> > </items> > </PushData> > <Divide/> > <PushData> > <items> > <StackDictionaryLookup index="1"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="6"/> > </items> > </PushData> > <GetMember/> > <Substract/> > <SetMember/> > <PushData> > <items> > <StackRegister reg="1"/> > <StackInteger value="1"/> > <StackDictionaryLookup index="1"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="7"/> > </items> > </PushData> > <CallMethod/> > <Pop/> > <PushData> > <items> > <StackRegister reg="2"/> > <StackDictionaryLookup index="1"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="6"/> > </items> > </PushData> > <GetMember/> > <Substract/> > <PushData> > <items> > <StackRegister reg="1"/> > <StackInteger value="2"/> > <StackDictionaryLookup index="0"/> > </items> > </PushData> > <GetVariable/> > <PushData> > <items> > <StackDictionaryLookup index="4"/> > </items> > </PushData> > <CallMethod/> > <Pop/> > </actions> > </DeclareFunction2> > <SetVariable/> > <EndAction/> > </actions> > </DoAction> > <PlaceObject2 replace="0" depth="1" objectID="130" name="movie"> > <transform> > <Transform scaleX="1.000000000000000" > scaleY="1.000305175781250" transX="0" transY="-317"/> > </transform> > </PlaceObject2> > <PlaceObject2 replace="0" depth="10" objectID="79" > name="controller"> > <transform> > <Transform transX="0" transY="3060"/> > </transform> > </PlaceObject2> > <ShowFrame/> > <End/> > </tags> > </DefineSprite> > > > > > > > _______________________________________________ > > swfmill mailing list > > swfmill@osflash.org > > http://osflash.org/mailman/listinfo/swfmill_osflash.org > > > _______________________________________________ swfmill mailing list swfmill@osflash.org http://osflash.org/mailman/listinfo/swfmill_osflash.org