Gnash
0.8.11dev
|
A top-level, standalone Movie that can be loaded and played. More...
#include <Movie.h>
Public Member Functions | |
Movie (as_object *object, const movie_definition *def, DisplayObject *parent) | |
virtual | ~Movie () |
virtual void | advance ()=0 |
Advance to the next frame of the MovieClip. More... | |
virtual float | frameRate () const =0 |
virtual size_t | widthPixels () const =0 |
virtual size_t | heightPixels () const =0 |
virtual bool | ensureFrameLoaded (size_t) const |
virtual const std::string & | url () const =0 |
Get the URL the Movie was loaded from. More... | |
virtual int | version () const =0 |
Get the version of the Movie. More... | |
virtual SWF::DefinitionTag * | exportedCharacter (const std::string &) |
Get an exported character definition by its symbol name. More... | |
virtual void | addCharacter (std::uint16_t) |
Add a character to the list of known characters. More... | |
virtual bool | initializeCharacter (std::uint16_t) |
Attempt to mark a character as initialized. More... | |
virtual const movie_definition * | definition () const =0 |
![]() | |
MovieClip (as_object *object, const movie_definition *def, Movie *root, DisplayObject *parent) | |
Construct a MovieClip instance. More... | |
virtual | ~MovieClip () |
virtual Movie * | get_root () const |
Return the relative root of this DisplayObject. More... | |
virtual bool | trackAsMenu () |
ActionScript property of Buttons and MovieClips altering mouse handling. More... | |
void | queueEvent (const event_id &id, int lvl) |
Queue event in the global action queue. More... | |
void | queueLoad () |
virtual MovieClip * | getAsRoot () |
Return the _root ActionScript property of this sprite. More... | |
virtual SWFRect | getBounds () const |
Get the composite bounds of all component drawing elements. More... | |
virtual bool | pointInShape (std::int32_t x, std::int32_t y) const |
Return true if the given point falls in this DisplayObject's shape. More... | |
virtual bool | pointInVisibleShape (std::int32_t x, std::int32_t y) const |
true if the given point falls in this DisplayObject's visible shape More... | |
virtual bool | pointInHitableShape (std::int32_t x, std::int32_t y) const |
size_t | get_current_frame () const |
Return 0-based index to current frame. More... | |
size_t | get_frame_count () const |
size_t | get_loaded_frames () const |
Return number of completely loaded frames of this sprite/movie. More... | |
size_t | get_bytes_total () const |
size_t | get_bytes_loaded () const |
const SWFRect & | get_frame_size () const |
DSOEXPORT void | setPlayState (PlayState s) |
Stop or play the sprite. More... | |
PlayState | getPlayState () const |
void | set_background_color (const rgba &color) |
virtual bool | mouseEnabled () const |
Return true if we have any mouse event handlers. More... | |
virtual InteractiveObject * | topmostMouseEntity (std::int32_t x, std::int32_t y) |
Return the topmost entity that the given point covers that can receive mouse events. NULL if none. Coords are in parent's frame. More... | |
const DisplayObject * | findDropTarget (std::int32_t x, std::int32_t y, DisplayObject *dragging) const |
Point coordinates in global twips. More... | |
void | setDropTarget (const std::string &tgt) |
const std::string & | getDropTarget () const |
DSOEXPORT void | goto_frame (size_t target_frame_number) |
Set the sprite state at the specified frame number. More... | |
bool | get_frame_number (const as_value &frame_spec, size_t &frameno) const |
Parse frame spec and return a 0-based frame number. More... | |
bool | goto_labeled_frame (const std::string &label) |
Look up the labeled frame, and jump to it. More... | |
virtual void | display (Renderer &renderer, const Transform &xform) |
Render this MovieClip. More... | |
void | draw (Renderer &renderer, const Transform &xform) |
Draw this MovieClip. More... | |
void | omit_display () |
void | swapDepths (DisplayObject *ch1, int newdepth) |
Swap depth of the given DisplayObjects in the DisplayList. More... | |
DisplayObject * | getDisplayObjectAtDepth (int depth) |
Return the DisplayObject at given depth in our DisplayList. More... | |
DisplayObject * | addDisplayListObject (DisplayObject *obj, int depth) |
Attach a DisplayObject at the specified depth. More... | |
DisplayObject * | add_display_object (const SWF::PlaceObject2Tag *tag, DisplayList &dlist) |
Place a DisplayObject or mask to the DisplayList. More... | |
void | move_display_object (const SWF::PlaceObject2Tag *tag, DisplayList &dlist) |
Proxy of DisplayList::moveDisplayObject() More... | |
void | replace_display_object (const SWF::PlaceObject2Tag *tag, DisplayList &dlist) |
Proxy of DisplayList::replaceDisplayObject() More... | |
void | remove_display_object (const SWF::PlaceObject2Tag *tag, DisplayList &dlist) |
Proxy of DisplayList::removeDisplayObject() More... | |
void | remove_display_object (int depth, int) |
Remove the object at the specified depth. More... | |
void | unloadMovie () |
void | attachCharacter (DisplayObject &newch, int depth, as_object *initObject) |
Attach the given DisplayObject instance to current display list. More... | |
virtual void | construct (as_object *initObj=nullptr) |
Handle placement event. More... | |
void | destroy () |
Mark this sprite as destroyed. More... | |
void | add_action_buffer (const action_buffer *a) |
void | execute_init_action_buffer (const action_buffer &a, int cid) |
Execute the given init action buffer, if not done yet for the target DisplayObject id. More... | |
void | execute_action (const action_buffer &ab) |
Execute a single action buffer (DOACTION block) More... | |
MovieClip * | to_movie () |
virtual void | getLoadedMovie (Movie *newMovie) |
Accept a loaded Movie. More... | |
void | loadVariables (const std::string &urlstr, VariablesMethod sendVarsMethod) |
Load url-encoded variables from the given url, optionally sending variables from this timeline too. More... | |
bool | getTextFieldVariables (const ObjectURI &uri, as_value &val) |
Get TextField variables. More... | |
bool | setTextFieldVariables (const ObjectURI &uri, const as_value &val) |
TODO: this is also unlikely to be the best way to do it. More... | |
DisplayObject * | getDisplayListObject (const ObjectURI &uri) |
Search for a named object on the DisplayList. More... | |
as_object * | pathElement (const ObjectURI &uri) |
Overridden to look in DisplayList for a match. More... | |
virtual void | call_frame_actions (const as_value &frame_spec) |
Execute the actions for the specified frame. More... | |
MovieClip * | duplicateMovieClip (const std::string &newname, int newdepth, as_object *init_object=nullptr) |
Duplicate this sprite in its timeline. More... | |
virtual void | mouseEvent (const event_id &id) |
Called when a mouse event affects this MovieClip. More... | |
void | notifyEvent (const event_id &id) |
Dispatch event handler(s), if any. More... | |
virtual as_environment & | get_environment () |
Return a reference to the variable scope of this DisplayObject. More... | |
void | set_textfield_variable (const ObjectURI &name, TextField *ch) |
Set a TextField variable to this timeline. More... | |
void | add_invalidated_bounds (InvalidatedRanges &ranges, bool force) |
Add the DisplayObject's invalidated bounds to the given ranges list. More... | |
const DisplayList & | getDisplayList () const |
int | getNextHighestDepth () const |
Return the next highest available depth. More... | |
void | setStreamSoundId (int id) |
Set the currently playing m_sound_stream_id. More... | |
void | removeMovieClip () |
Remove this sprite from the stage. More... | |
DynamicShape & | graphics () |
Direct access to the Graphics object for drawing. More... | |
virtual bool | handleFocus () |
Set focus to this MovieClip. More... | |
DSOEXPORT void | setVariables (const MovieVariables &vars) |
Set all variables in the given map with their corresponding values. More... | |
virtual void | visitNonProperties (KeyVisitor &v) const |
Enumerate child DisplayObjects. More... | |
void | cleanupDisplayList () |
void | queueAction (const action_buffer &buf) |
Queue the given action buffer. More... | |
void | constructAsScriptObject () |
Construct this instance as an ActionScript object. More... | |
bool | getLockRoot () const |
void | setLockRoot (bool lr) |
virtual int | getDefinitionVersion () const |
Return the version of the SWF this MovieClip was parsed from. More... | |
![]() | |
DisplayObjectContainer (as_object *object, DisplayObject *parent) | |
virtual | ~DisplayObjectContainer () |
size_t | numChildren () const |
![]() | |
InteractiveObject (as_object *object, DisplayObject *parent) | |
virtual | ~InteractiveObject () |
virtual StaticText * | getStaticText (std::vector< const SWF::TextRecord *> &, size_t &) |
Allow extraction of static text. More... | |
![]() | |
DisplayObject (movie_root &mr, as_object *object, DisplayObject *parent) | |
Construct a DisplayObject. More... | |
virtual | ~DisplayObject () |
DisplayObject * | parent () const |
Return the parent of this DisplayObject, or NULL if the DisplayObject has no parent. More... | |
void | set_parent (DisplayObject *parent) |
Set the parent of this DisplayObject. More... | |
int | get_depth () const |
void | set_depth (int d) |
int | getVolume () const |
Get sound volume for this DisplayObject. More... | |
void | setVolume (int vol) |
Set sound volume for this DisplayObject. More... | |
int | getWorldVolume () const |
Get concatenated sound volume for this DisplayObject. More... | |
const Transform & | transform () const |
void | setMatrix (const SWFMatrix &m, bool updateCache=false) |
Set local transform SWFMatrix for this DisplayObject. More... | |
void | set_x_scale (double factor) |
Set the xscale value of current SWFMatrix. More... | |
void | set_y_scale (double factor) |
Set the yscale value of current SWFMatrix. More... | |
void | set_rotation (double rot) |
Set the rotation value of current SWFMatrix. More... | |
virtual void | setWidth (double width) |
Set the width of this DisplayObject, modifying its SWFMatrix. More... | |
virtual void | setHeight (double height) |
Set the height of this DisplayObject, modifying its SWFMatrix. More... | |
void | setCxForm (const SWFCxForm &cx) |
std::uint16_t | get_ratio () const |
void | set_ratio (std::uint16_t r) |
int | get_clip_depth () const |
void | set_clip_depth (int d) |
See get_clip_depth() More... | |
bool | isMaskLayer () const |
bool | isDynamicMask () const |
DisplayObject * | getMask () const |
Return the DisplayObject masking this instance (if any) More... | |
void | setMask (DisplayObject *mask) |
void | set_name (const ObjectURI &uri) |
Set DisplayObject name, initializing the original target member. More... | |
const ObjectURI & | get_name () const |
std::unique_ptr< ExecutableCode > | get_event_handler (const event_id &id) const |
Get the built-in function handlers code for the given event. More... | |
void | add_event_handler (const event_id &id, const action_buffer &code) |
Set a built-in function handler for the given event. More... | |
bool | pointInBounds (std::int32_t x, std::int32_t y) const |
Return true if the given point falls in this DisplayObject's bounds. More... | |
bool | get_accept_anim_moves () const |
Return true if PlaceObjects tag are allowed to move this DisplayObject. More... | |
bool | isDynamic () const |
Was this DisplayObject dynamically created ? More... | |
void | setDynamic () |
Mark this DisplayObject as dynamically created. More... | |
void | transformedByScript () |
Call this function when the sprite has been transformed due to ActionScript code. More... | |
void | set_visible (bool visible) |
Set whether this DisplayObject should be rendered. More... | |
bool | visible () const |
bool | hasEventHandler (const event_id &id) const |
Return true if an handler for the given event is defined. More... | |
bool | invalidated () const |
Return whether this DisplayObject has been invalidated or not. More... | |
bool | childInvalidated () const |
Return whether this DisplayObject has and invalidated child or not. More... | |
virtual void | update () |
Notify a change in the DisplayObject's appearance. More... | |
void | set_invalidated () |
This function marks the DisplayObject as being modified in aspect and keeps track of current invalidated bounds the first time it's called after each call to clear_invalidated(). More... | |
void | set_invalidated (const char *debug_file, int debug_line) |
void | extend_invalidated_bounds (const InvalidatedRanges &ranges) |
void | set_child_invalidated () |
void | clear_invalidated () |
bool | unload () |
Unload this instance from the stage. More... | |
bool | unloaded () const |
Return true if this DisplayObject was unloaded from the stage. More... | |
bool | isDestroyed () const |
Return true if this DisplayObject was destroyed. More... | |
bool | boundsInClippingArea (Renderer &renderer) const |
std::string | getTargetPath () const |
Return full path to this object, in slash notation. More... | |
const std::string & | getOrigTarget () const |
std::string DSOEXPORT | getTarget () const |
Return full path to this object, in dot notation. More... | |
virtual bool | isSelectableTextField () const |
Return true if this DisplayObject is a selectable TextField. More... | |
bool DSOEXPORT | allowHandCursor () const |
Return true if this DisplayObject allows turning the cursor into an hand shape when it happens to be the one receiving mouse events. More... | |
ObjectURI | getNextUnnamedInstanceName () |
Used to assign a name to unnamed instances. More... | |
BlendMode | getBlendMode () const |
void | setBlendMode (BlendMode bm) |
virtual void | killFocus () |
Some DisplayObjects require actions on losing focus. More... | |
double | rotation () const |
double | scaleX () const |
double | scaleY () const |
as_object * | object () const |
virtual void | markReachableResources () const |
Mark all reachable resources. More... | |
boost::tribool | focusRect () const |
void | focusRect (boost::tribool focus) |
![]() | |
GcResource (GC &gc) | |
Create a Garbage-collected resource associated with a GC. More... | |
void | setReachable () const |
Mark this resource as being reachable. More... | |
bool | isReachable () const |
Return true if this object is marked as reachable. More... | |
void | clearReachable () const |
Clear the reachable flag. More... | |
Additional Inherited Members | |
![]() | |
enum | PlayState { PLAYSTATE_PLAY, PLAYSTATE_STOP } |
enum | VariablesMethod { METHOD_NONE = 0, METHOD_GET, METHOD_POST } |
The various methods for sending data in requests. More... | |
typedef std::vector< TextField * > | TextFields |
typedef std::map< ObjectURI, TextFields, ObjectURI::LessThan > | TextFieldIndex |
A container for textfields, indexed by their variable name. More... | |
typedef std::map< std::string, std::string > | MovieVariables |
typedef movie_definition::PlayList | PlayList |
![]() | |
enum | BlendMode { BLENDMODE_UNDEFINED = 0, BLENDMODE_NORMAL = 1, BLENDMODE_LAYER, BLENDMODE_MULTIPLY, BLENDMODE_SCREEN, BLENDMODE_LIGHTEN, BLENDMODE_DARKEN, BLENDMODE_DIFFERENCE, BLENDMODE_ADD, BLENDMODE_SUBTRACT, BLENDMODE_INVERT, BLENDMODE_ALPHA, BLENDMODE_ERASE, BLENDMODE_OVERLAY, BLENDMODE_HARDLIGHT = 14 } |
typedef std::vector< const action_buffer * > | BufferList |
typedef std::map< event_id, BufferList > | Events |
![]() | |
static as_value | blendMode (const fn_call &fn) |
Getter-setter for blendMode. More... | |
![]() | |
static const int | lowerAccessibleBound = -16384 |
See also http://www.kirupa.com/developer/actionscript/depths2.htm. More... | |
static const int | upperAccessibleBound = 2130690044 |
static const int | staticDepthOffset = lowerAccessibleBound |
static const int | removedDepthOffset = -32769 |
static const int | noClipDepthValue = -1000000 |
![]() | |
virtual bool | unloadChildren () |
Unload all contents in the displaylist and this instance. More... | |
virtual void | markOwnResources () const |
Mark sprite-specific reachable resources. More... | |
void | placeDisplayObject (DisplayObject *ch, int depth) |
![]() | |
movie_root & | stage () const |
Get the movie_root to which this DisplayObject belongs. More... | |
void | saveOriginalTarget () |
const Events & | get_event_handlers () const |
void | set_event_handlers (const Events ©from) |
as_object * | getPathElementSeparator (string_table::key key) |
look for '.', 'this', '..', '_parent', '_level0' and '_root' More... | |
![]() | |
virtual | ~GcResource () |
Delete this resource. More... | |
![]() | |
DisplayList | _displayList |
![]() | |
ObjectURI | _name |
Name of this DisplayObject (if any) More... | |
DisplayObject * | _parent |
InvalidatedRanges | m_old_invalidated_ranges |
Bounds of this DisplayObject instance before first invalidation since last call to clear_invalidated(). More... | |
A top-level, standalone Movie that can be loaded and played.
This is an abstract interface for any Movie that can be loaded directly into Gnash, including SWFs and Bitmaps. The interface is not especially clean because SWFs and Bitmaps are treated the same as top-level movies despite having almost nothing in common. As this is required by Flash, it seems unavoidable.
|
inline |
|
inlinevirtual |
References advance(), frameRate(), heightPixels(), and widthPixels().
|
inlinevirtual |
Add a character to the list of known characters.
This makes the character known to ActionScript for initialization. Exported characters must both be in the definition's list of exports and added with this function before they are available.
Reimplemented in gnash::SWFMovie.
Referenced by gnash::SWF::ExportAssetsTag::executeState(), gnash::SWF::ImportAssetsTag::executeState(), and gnash::SWF::DefinitionTag::executeState().
|
pure virtual |
Advance to the next frame of the MovieClip.
Actions will be executed or pushed to the queue as necessary.
Reimplemented from gnash::MovieClip.
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by ~Movie().
|
pure virtual |
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by gnash::SWF::ExportAssetsTag::executeState(), gnash::movie_root::init(), initializeCharacter(), gnash::initObjectClass(), gnash::registerBitmapDataNative(), gnash::registerTextFieldNative(), gnash::movie_root::setScriptLimits(), gnash::movie_root::setStageScaleMode(), and gnash::textformat_class_init().
|
inlinevirtual |
Reimplemented in gnash::SWFMovie.
References url(), and version().
Referenced by gnash::Gui::advanceMovie().
|
inlinevirtual |
Get an exported character definition by its symbol name.
The character is only available after the ExportAssets tag has been executed.
symbol | The exported symbol of the character to retrieve. |
Reimplemented in gnash::SWFMovie.
Referenced by gnash::registerMovieClipNative().
|
pure virtual |
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by gnash::Gui::notify_key_event(), and ~Movie().
|
pure virtual |
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by gnash::GtkAggVaapiGlue::beforeRendering(), gnash::movie_root::getStageHeight(), gnash::movie_root::setLevel(), and ~Movie().
|
inlinevirtual |
Attempt to mark a character as initialized.
The default is to return false. Only a SWFMovie can have a list of characters.
Reimplemented in gnash::SWFMovie.
References definition().
Referenced by gnash::MovieClip::execute_init_action_buffer().
|
pure virtual |
Get the URL the Movie was loaded from.
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by ensureFrameLoaded(), and gnash::DisplayObject::MaskRenderer::~MaskRenderer().
|
pure virtual |
Get the version of the Movie.
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by ensureFrameLoaded(), gnash::MovieClip::getAsRoot(), and gnash::MovieClip::getDefinitionVersion().
|
pure virtual |
Implemented in gnash::SWFMovie, and gnash::BitmapMovie.
Referenced by gnash::GtkAggVaapiGlue::beforeRendering(), gnash::movie_root::getStageWidth(), gnash::movie_root::setLevel(), and ~Movie().