[swfmill] Question about swfmil output
ying lcs
yinglcs at gmail.com
Sun Mar 4 14:51:51 EST 2007
On 3/4/07, Mark Winterhalder <mark13 at gmail.com> wrote:
> On 3/4/07, ying lcs <yinglcs at gmail.com> 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
>
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 at osflash.org
> http://osflash.org/mailman/listinfo/swfmill_osflash.org
>
More information about the swfmill
mailing list