gnash-dev
[Top][All Lists]
Advanced

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

Re: [Gnash-dev] Gnash source code analysis (WAS: Questions about trapezo


From: strk
Subject: Re: [Gnash-dev] Gnash source code analysis (WAS: Questions about trapezoids...)
Date: Mon, 25 Sep 2006 09:30:23 +0200

On Thu, Sep 21, 2006 at 09:26:20PM +0200, Udo Giacomozzi wrote:

> > The "_root" reference in Flash is a "relative" one. Ie. you can have
> > multiple "_root" movies in a single run: one for each loaded SWF.
> 
> Indeed. So set_current_root() is different from _root ?

Just got new info about this. It seems that up to Flash6, the _root
reference was really *absolute*. Flash7 introduced a _lockroot property
that, when set on a timeline, makes sure that _root from within it will
keep pointing to the root of *that* movie even when it is loaded from
another one (ie: prevents loader movies to override the loaded movie's
root). A testcase would help verifying this.

> Uhm, I think the original Flash player newer skips frames. When it
> cannot render a frame in time, then the movie simply slows down.

Actually, when sound playback takes too long animation frames should
be skipped to keep the two in sync. Actions would still need to be
executed though.

> movie_interface = A more appropriate name would be "movie_instance".
>   It holds information for any stateful movie. The root movie is one
>   of these and the same applies for sprites (MovieClips). Each
>   interface/instance refers to exactly one movie_definition. So, if
>   100 sprites of the same kind are displayed in the movie there will
>   be 100 movie_interfaces but just one movie_definition for that kind
>   of sprite.
>   It's just a abstract class definition.
> 
> movie_root = This class is used to hold information (about the root
>   movie (the SWF file). It is the top *instance* (interface) in the
>   player. It contains the reference to a sprite_instance for the root
>   movie. Strangely both movie_root and sprite_instance derive from
>   movie_interface, so one could say the root movie has two
>   instances..

This is really confusing indeed. I'd like to drop the movie_interface
class to make it somewhat clearer. 

> character = (could be named "character_interface" or
>   "character_instance"). It's the stateful instance of a character
>   definition.

Should be character_instance IMHO.

> generic_character = since it is an instance, I guess this is a single
>   letter (not it's font definition)? Would need some clarification
>   here...

I think it has nothing to do with text, just a generic "instance" for
use when you have a _def and don't want to define a new class for it's
instance (I dislike this as well).

> edit_test_character = can't find it in text.h, has this been removed?
>   It is found in the online Doxygen reference. What's this anyway?

An instance of a TextField: server/edit_text_character.{h,cpp}
It's definition is server/parser/edit_text_character_def.{h,cpp}

> display_list = holds a list of "character" instances. Each
>   movie_interface contains one DisplayList. It's the link between
>   sprites (ActionScript) and characters (no ActionScript).

Not each movie_interface, each sprite_instance contains a DisplayList.
Note that sprites *are* also characters.


> internals.xml. Interesting. Excuse my ignorance, but how I read them?
> Are they part of DoxyGen? I'm currently using the (old) online DoxyGen
> pages, but could not find any "Internals" chapter there...

doc/C/internals.xml - it's docbook format.

--strk;




reply via email to

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