[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash] Using gnash to play swf file

From: Meryl Silverburgh
Subject: Re: [Gnash] Using gnash to play swf file
Date: Sun, 25 Feb 2007 13:34:34 -0600

On 2/25/07, strk <address@hidden> wrote:
On Sat, Feb 24, 2007 at 11:48:38PM -0600, Meryl Silverburgh wrote:
> Hi,
> I have been trying to gnash to play youtube swf file (player2.swf).
> I the problem is somehow gnash set the properties 'setMovie',
> 'playMovie' to a different as_object than the one when it tries to
> call method 'setMovie', 'playMovie'.
> Please let me know if this make sense.

It makes sense, as any object in ActionScript is an instance of
a class, which may export an interface. The interface is an as_object
itself. Note that player2.swf is using registerClass and IIRc also
'extends' which are both used to design inheritance chains.

Try to find out more about the object those functions are registered
against. Is it a 'properties' object ? Can it be it's being replaced
by an explicit override of 'properties' ?
You're on a good track by reducing the testcase, but you need a way
to make your tests verifiable against the proprietary player.
What we use with Gnash is a textarea and a set of utility functions
to perform some checks, like: check_equals(typeof(myObj.setMovie), 'function').
You can get all the facilities by including the Dejagnu.swf file in your test,
either as a built-in clip or by using an IMPORT tag (symbol name is 'dejagnu').

Using flare to decompile the player2.swf, I think the swf creates an
object 'Movie' which inherits from the MovieClip (buildin in Flash),
but overloading the 'setMovie' and 'playMovie' functions.

// the decompile code of player2.swf:
logic.Movie extends MovieClip;
       var v2 = v1.prototype;

       v2.setMovie = function (_video_id, image_url, movie_url, l,
_track_id, eurl, append_vars) {

   v2.playMovie = function () {

Please let m know where in the gnash code which I should look to
handling inheritance like the above code.

Thank you.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]