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

Reply via email to