Go to the documentation of this file.
22 #ifndef GNASH_MOVIECLIP_H
23 #define GNASH_MOVIECLIP_H
32 #include <boost/ptr_container/ptr_list.hpp>
33 #include <boost/intrusive_ptr.hpp>
47 class LoadVariablesThread;
54 class PlaceObject2Tag;
90 typedef std::map<ObjectURI, TextFields, ObjectURI::LessThan>
127 virtual Movie* get_root()
const;
129 virtual bool trackAsMenu();
135 void queueEvent(
const event_id&
id,
int lvl);
146 virtual SWFRect getBounds()
const;
149 virtual bool pointInShape(std::int32_t
x, std::int32_t
y)
const;
152 virtual bool pointInVisibleShape(std::int32_t
x, std::int32_t
y)
const;
158 virtual bool pointInHitableShape(std::int32_t
x, std::int32_t
y)
const;
163 return _currentFrame;
168 return _def ? _def->get_frame_count() : 1;
178 return _def ? _def->get_loading_frame() : 1;
185 return isDynamic() ? 0 : _def->get_bytes_total();
192 return isDynamic() ? 0 : _def->get_bytes_loaded();
198 return _def ? _def->get_frame_size() :
r;
211 void set_background_color(
const rgba&
color);
217 virtual bool mouseEnabled()
const;
241 virtual void advance();
248 DSOEXPORT void goto_frame(
size_t target_frame_number);
266 bool get_frame_number(
const as_value& frame_spec,
size_t& frameno)
const;
269 bool goto_labeled_frame(
const std::string& label);
287 _displayList.swapDepths(ch1, newdepth);
342 void remove_display_object(
int depth,
int );
366 virtual void construct(
as_object* initObj =
nullptr);
390 if (!_callingFrameActions) queueAction(*
a);
391 else execute_action(*
a);
426 virtual void getLoadedMovie(
Movie* newMovie);
443 void loadVariables(
const std::string& urlstr,
444 VariablesMethod sendVarsMethod);
474 virtual void call_frame_actions(
const as_value& frame_spec);
494 MovieClip* duplicateMovieClip(
const std::string& newname,
495 int newdepth,
as_object* init_object =
nullptr);
506 void notifyEvent(
const event_id&
id);
532 return _displayList.getNextHighestDepth();
538 void setStreamSoundId(
int id);
561 void removeMovieClip();
572 virtual bool handleFocus();
577 DSOEXPORT void setVariables(
const MovieVariables& vars);
582 virtual void visitNonProperties(
KeyVisitor&
v)
const;
586 void cleanupDisplayList();
601 void constructAsScriptObject();
612 virtual int getDefinitionVersion()
const;
619 virtual bool unloadChildren();
631 virtual void markOwnResources()
const;
635 _displayList.placeDisplayObject(ch, depth);
641 void processCompletedLoadVariableRequests();
657 void executeFrameTags(
size_t frame,
DisplayList& dlist,
661 void stopStreamSound();
669 bool isEnabled()
const;
676 bool hitTestDrawable(std::int32_t
x, std::int32_t
y)
const;
716 void restoreDisplayList(
size_t targetFrame);
719 void increment_frame_and_check_for_loop();
722 void cleanup_textfield_variables();
726 const boost::intrusive_ptr<const movie_definition> _def;
729 typedef boost::ptr_list<LoadVariablesThread> LoadVariablesThreads;
736 LoadVariablesThreads _loadVariableRequests;
744 PlayState _playState;
752 std::unique_ptr<TextFieldIndex> _text_variables;
754 std::string _droptarget;
757 size_t _currentFrame;
760 int m_sound_stream_id;
767 bool _flushedOrphanedTags;
770 bool _callingFrameActions;
779 #endif // GNASH_SPRITE_INSTANCE_H
virtual void construct(as_object *initObj=nullptr)
Handle placement event.
Definition: MovieClip.cpp:1711
bool hasRatio() const
Definition: PlaceObject2Tag.h:120
bool getLockRoot() const
Definition: MovieClip.h:605
size_t get_frame_count() const
Definition: MovieClip.h:166
@ CLASS_MOVIE_CLIP
Definition: namedStrings.h:227
virtual int getDefinitionVersion() const
Return the version of the SWF this MovieClip was parsed from.
Definition: MovieClip.cpp:531
double toNumber(const as_value &v, const VM &vm)
Convert an as_value to a double.
Definition: VM.cpp:451
virtual void stopStreamingSound(int handle)
Remove scheduled requests to play the specified sound buffer slot.
Definition: sound_handler.cpp:268
void dropLevel(int depth)
Drop level at given depth.
Definition: movie_root.cpp:462
void set_parent(DisplayObject *parent)
Set the parent of this DisplayObject.
Definition: DisplayObject.h:261
const SWFRect & get_frame_size() const
Definition: MovieClip.h:195
std::string name
Definition: LocalConnection_as.cpp:149
virtual ~MovieClip()
Definition: MovieClip.cpp:525
bool toBool(const as_value &v, const VM &vm)
Convert an as_value to boolean type.
Definition: VM.cpp:445
void clear()
Remove all paths and style informations.
Definition: DynamicShape.cpp:39
void log_swferror(StringType msg, Args... args)
Definition: log.h:325
bool isKeyEvent(const event_id &e)
Check whether an event is a keyboard event.
Definition: event_id.cpp:104
BlendMode
Definition: DisplayObject.h:872
const Events & get_event_handlers() const
Definition: DisplayObject.h:996
virtual MovieClip * getAsRoot()
Return the _root ActionScript property of this sprite.
Definition: MovieClip.cpp:2055
The base class for all ActionScript objects.
Definition: as_object.h:162
void finalize() const
Always call this function before displaying !
Definition: DynamicShape.cpp:139
void remove_display_object(const SWF::PlaceObject2Tag *tag, DisplayList &dlist)
Proxy of DisplayList::removeDisplayObject()
Definition: MovieClip.cpp:1368
void destroy()
Mark this sprite as destroyed.
Definition: MovieClip.cpp:2041
void visitAll(V &visitor)
Visit each and all DisplayObject in the list.
Definition: DisplayList.h:373
std::unique_ptr< ExecutableCode > get_event_handler(const event_id &id) const
Get the built-in function handlers code for the given event.
Definition: DisplayObject.cpp:434
movie_definition::PlayList PlayList
Definition: MovieClip.h:95
Render a dynamic mask for a specified DisplayObject.
Definition: DisplayObject.h:969
Holds the immutable data for a sprite, as read from as SWF stream. @ should not derive from movie_def...
Definition: sprite_definition.h:50
int getNextHighestDepth() const
Return the next highest available depth.
Definition: MovieClip.h:531
PlayState
Definition: MovieClip.h:98
@ METHOD_POST
Definition: MovieClip.h:422
as_object * toObject(const as_value &v, VM &vm)
Convert an as_value to an object.
Definition: VM.cpp:457
void log_action(StringType msg, Args... args)
Definition: log.h:307
size_t arraySize(T(&)[N])
Get the size of an array without passing a pointer by mistake.
Definition: GnashAlgorithm.h:58
Movie & getRootMovie()
Access the originating root movie (not necessarily _level0)
Definition: movie_root.h:303
@ TAG_DLIST
Definition: ControlTag.h:51
A general use string table.
Definition: string_table.h:42
static const int staticDepthOffset
Definition: DisplayObject.h:205
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....
Definition: MovieClip.cpp:1477
@ LOAD
Definition: event_id.h:73
Immutable data representing the definition of a movie display element.
Definition: DefinitionTag.h:48
geometry::Range2d< std::int32_t > getRange() const
Construct and return a Range2d object.
Definition: SWFRect.h:222
virtual bool handleFocus()
Set focus to this MovieClip.
Definition: MovieClip.cpp:1396
void log_debug(StringType msg, Args... args)
Definition: log.h:301
PlayState getPlayState() const
Definition: MovieClip.h:208
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.
Definition: MovieClip.cpp:980
std::int32_t y
Definition: BitmapData_as.cpp:435
@ i
Definition: GnashKey.h:155
void swapDepths(DisplayObject *ch1, int newdepth)
Swap depth of the given DisplayObjects in the DisplayList.
Definition: MovieClip.h:285
#define LOG_ONCE(x)
Definition: log.h:49
A basic RGBA type.
Definition: RGBA.h:36
void add_invalidated_bounds(InvalidatedRanges &ranges, bool force)
Definition: DisplayList.cpp:619
void set_prototype(const as_value &proto)
Set this object's proto member.
Definition: as_object.cpp:518
SWFMatrix & invert()
Invert this SWFMatrix and return the result.
Definition: SWFMatrix.cpp:288
#define _(String)
Definition: log.h:44
std::string get_text_value() const
Return value of our text.
Definition: TextField.cpp:851
Provides information about timeline context.
Definition: as_environment.h:51
bool isDestroyed() const
Return true if this DisplayObject was destroyed.
Definition: DisplayObject.h:807
A class to identify 'static' SWF events (system events).
Definition: event_id.h:53
void queueEvent(const event_id &id, int lvl)
Queue event in the global action queue.
Definition: MovieClip.cpp:543
size_t get_loaded_frames() const
Return number of completely loaded frames of this sprite/movie.
Definition: MovieClip.h:176
DSOEXPORT void expand_to_rect(const SWFRect &r)
Makes union of the given and the current SWFRect.
Definition: SWFRect.cpp:56
void init_member(const std::string &name, const as_value &val, int flags=DefaultFlags)
Initialize a member value by string.
Definition: as_object.cpp:669
The AVM1 virtual machine.
Definition: VM.h:72
void queueLoad()
Definition: MovieClip.cpp:856
const std::string & getDropTarget() const
Definition: MovieClip.h:234
const SWFCxForm & getCxForm(const DisplayObject &o)
Definition: DisplayObject.h:1125
virtual void display(Renderer &renderer, const Transform &xform)
Render this MovieClip.
Definition: MovieClip.cpp:1205
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:41
DSOEXPORT void goto_frame(size_t target_frame_number)
Set the sprite state at the specified frame number.
Definition: MovieClip.cpp:1066
void setBlendMode(BlendMode bm)
Definition: DisplayObject.h:894
const EventHandlers & getEventHandlers() const
Definition: PlaceObject2Tag.h:115
DSOEXPORT void setVariables(const MovieVariables &vars)
Set all variables in the given map with their corresponding values.
Definition: MovieClip.cpp:1936
virtual DisplayObject * createDisplayObject(Global_as &gl, DisplayObject *parent) const =0
Create a DisplayObject with the given parent.
void set_ratio(std::uint16_t r)
Definition: DisplayObject.h:362
void set_background_color(const rgba &color)
Definition: MovieClip.cpp:1580
@ ROLL_OVER
Definition: event_id.h:65
SWFMatrix getWorldMatrix(const DisplayObject &d, bool includeRoot=true)
Get concatenated SWFMatrix (all ancestor transforms and our SWFMatrix)
Definition: DisplayObject.h:1131
@ PRIORITY_DOACTION
Frame actions, load handlers, unload handlers.
Definition: movie_root.h:539
ObjectURI getNextUnnamedInstanceName()
Used to assign a name to unnamed instances.
Definition: DisplayObject.cpp:134
Base class for render handlers.
Definition: Renderer.h:189
void add_invalidated_bounds(InvalidatedRanges &ranges, bool force)
Add the DisplayObject's invalidated bounds to the given ranges list.
Definition: MovieClip.cpp:1641
@ m
Definition: GnashKey.h:159
InvalidatedRanges m_old_invalidated_ranges
Bounds of this DisplayObject instance before first invalidation since last call to clear_invalidated(...
Definition: DisplayObject.h:1029
bool isDynamicMask() const
Definition: DisplayObject.h:404
bool invisible(const SWFCxForm &cx)
Returns true when the SWFCxForm leads to alpha == 0.
Definition: SWFCxForm.h:102
@ s
Definition: GnashKey.h:165
@ PLAYSTATE_STOP
Definition: MovieClip.h:100
bool hasBlendMode() const
Definition: PlaceObject2Tag.h:135
void setMatrix(const SWFMatrix &m, bool updateCache=false)
Set local transform SWFMatrix for this DisplayObject.
Definition: DisplayObject.cpp:395
bool hasCxform() const
Definition: PlaceObject2Tag.h:121
void saveOriginalTarget()
Definition: DisplayObject.h:991
std::uint16_t getID() const
Definition: PlaceObject2Tag.h:111
void removeMovieClip()
Remove this sprite from the stage.
Definition: MovieClip.cpp:1948
@ n
Definition: GnashKey.h:160
void notifyEvent(const event_id &id)
Dispatch event handler(s), if any.
Definition: MovieClip.cpp:717
size_t get_bytes_loaded() const
Definition: MovieClip.h:190
bool pointTestLocal(std::int32_t x, std::int32_t y, const SWFMatrix &wm) const
Definition: DynamicShape.h:146
const Transform & transform() const
Definition: DisplayObject.h:292
@ PRIORITY_CONSTRUCT
Construct event handlers.
Definition: movie_root.h:537
std::string DSOEXPORT getTarget() const
Return full path to this object, in dot notation.
Definition: DisplayObject.cpp:621
Executor of an action_buffer.
Definition: ActionExec.h:119
as_object * pathElement(const ObjectURI &uri)
Overridden to look in DisplayList for a match.
Definition: MovieClip.cpp:809
DSOTEXPORT void placeDisplayObject(DisplayObject *ch, int depth)
Place a new DisplayObject at the specified depth, replacing any existing DisplayObject at the same de...
Definition: DisplayList.cpp:172
Global_as & getGlobal(const as_environment &env)
Definition: as_environment.cpp:651
void pushAction(std::unique_ptr< ExecutableCode > code, size_t lvl)
Push an executable code to the ActionQueue.
Definition: movie_root.cpp:1496
bool isDynamic() const
Was this DisplayObject dynamically created ?
Definition: DisplayObject.h:592
A MovieClip is a container for DisplayObjects.
Definition: MovieClip.h:84
VM & getVM(const as_environment &env)
Definition: as_environment.h:222
void set_event_handlers(const Events ©from)
Definition: DisplayObject.cpp:413
const std::string & getPlayerVersion() const
Get version of the player, in a compatible representation.
Definition: VM.cpp:86
void loadVariables(const std::string &urlstr, VariablesMethod sendVarsMethod)
Load url-encoded variables from the given url, optionally sending variables from this timeline too.
Definition: MovieClip.cpp:1867
Client program's interface to the definition of a movie or sprite.
Definition: movie_definition.h:96
const DisplayList & getDisplayList() const
Definition: MovieClip.h:522
virtual bool initializeCharacter(std::uint16_t)
Attempt to mark a character as initialized.
Definition: Movie.h:103
virtual bool pointInHitableShape(std::int32_t x, std::int32_t y) const
Definition: MovieClip.cpp:1462
void log_error(StringType msg, Args... args)
Definition: log.h:283
virtual void construct(as_object *=nullptr)
Callback invoked whenever a DisplayObject is placed on stage.
Definition: DisplayObject.h:763
const action_buffer & action() const
Definition: swf_event.h:58
DSOEXPORT void setPlayState(PlayState s)
Stop or play the sprite.
Definition: MovieClip.cpp:2108
void display(Renderer &renderer, const Transform &xform) const
Display a DynamicShape object.
Definition: DynamicShape.cpp:49
void removeUnloaded()
Remove all unloaded DisplayObject from the list.
Definition: DisplayList.cpp:917
The base class for interactive objects.
Definition: InteractiveObject.h:45
DynamicShape & graphics()
Direct access to the Graphics object for drawing.
Definition: MovieClip.h:564
#define IF_VERBOSE_MALFORMED_SWF(x)
Definition: log.h:404
Rectangle class, see swf defined rectangle record.
Definition: SWFRect.h:45
void setDropTarget(const std::string &tgt)
Definition: MovieClip.h:230
std::uint16_t getRatio() const
Definition: PlaceObject2Tag.h:109
bool isButtonEvent(const event_id &e)
Check whether an event is a button-like event.
Definition: event_id.cpp:118
A list of on-stage DisplayObjects, ordered by depth.
Definition: DisplayList.h:65
bool isFinite(double d)
Definition: GnashNumeric.h:47
An abstract key visitor.
Definition: PropertyList.h:58
@ t
Definition: GnashKey.h:166
const VGfloat color[4]
Definition: testr_gtk.cpp:82
@ DRAG_OVER
Definition: event_id.h:67
DSOTEXPORT DisplayObject * getDisplayObjectAtDepth(int depth) const
May return NULL.
Definition: DisplayList.cpp:133
void omit_display()
Definition: DisplayList.cpp:609
const DisplayObject * findDropTarget(std::int32_t x, std::int32_t y, DisplayObject *dragging) const
Point coordinates in global twips.
Definition: MovieClip.cpp:1513
@ r
Definition: GnashKey.h:164
@ ROLL_OUT
Definition: event_id.h:66
bool hasMatrix() const
Definition: PlaceObject2Tag.h:122
virtual Movie * get_root() const
Return the relative root of this DisplayObject.
Definition: MovieClip.cpp:2049
DisplayObject * add_display_object(const SWF::PlaceObject2Tag *tag, DisplayList &dlist)
Place a DisplayObject or mask to the DisplayList.
Definition: MovieClip.cpp:1233
A StreamProvider makes IOChannels available to the core on request.
Definition: StreamProvider.h:50
@ DATA
Definition: event_id.h:81
virtual void markOwnResources() const
Mark sprite-specific reachable resources.
Definition: MovieClip.cpp:2017
void for_each(C &container, R(T::*pmf)(const A &), const A &arg)
Definition: Renderer_ogl.cpp:690
@ RELEASE
Definition: event_id.h:63
@ a
Definition: GnashKey.h:147
std::int32_t x
The x coordinate.
Definition: Point2d.h:43
int get_depth() const
Definition: DisplayObject.h:268
const RunResources & getRunResources(const as_object &o)
Get the RunResources from an as_object.
Definition: as_object.cpp:1142
bool setTextFieldVariables(const ObjectURI &uri, const as_value &val)
TODO: this is also unlikely to be the best way to do it.
Definition: MovieClip.cpp:834
DisplayObject * getDisplayListObject(const ObjectURI &uri)
Search for a named object on the DisplayList.
Definition: MovieClip.cpp:1617
DSOTEXPORT std::string to_string(int version=7) const
Get a std::string representation for this value.
Definition: as_value.cpp:205
A class to contain transferable arguments for a fn_call.
Definition: fn_call.h:57
virtual MovieClip * to_movie()
Definition: DisplayObject.h:266
#define IF_VERBOSE_ASCODING_ERRORS(x)
Definition: log.h:397
code
Definition: GnashKey.h:44
The DynamicShape class represents a mutable shape.
Definition: DynamicShape.h:45
void transform(geometry::Point2d &p) const
Transform a given point by our SWFMatrix.
Definition: SWFMatrix.cpp:99
void set_background_color(const rgba &color)
Definition: movie_root.cpp:2116
void queueAction(const action_buffer &buf)
Queue the given action buffer.
Definition: MovieClip.cpp:711
@ PROP_ENABLED
Definition: namedStrings.h:74
int get_clip_depth() const
Definition: DisplayObject.h:375
std::vector< boost::intrusive_ptr< SWF::ControlTag > > PlayList
Definition: movie_definition.h:98
An abstract property.
Definition: Property.h:277
void setLockRoot(bool lr)
Definition: MovieClip.h:609
void setCxForm(const SWFCxForm &cx)
Definition: DisplayObject.h:352
virtual bool get_member(const ObjectURI &uri, as_value *val)
Get a property by name if it exists.
Definition: as_object.cpp:378
void cleanupDisplayList()
Definition: MovieClip.cpp:2010
DSOTEXPORT as_value getValue(const as_object &this_ptr) const
Get value of this property.
Definition: Property.cpp:98
void markReachableResources() const
Mark all reachable resources.
Definition: as_environment.cpp:282
void copyProperties(const as_object &o)
Copy properties from the given object.
Definition: as_object.cpp:895
@ p
Definition: GnashKey.h:162
virtual bool trackAsMenu()
ActionScript property of Buttons and MovieClips altering mouse handling.
Definition: MovieClip.cpp:1538
int getClipDepth() const
Definition: PlaceObject2Tag.h:110
void setDynamic()
Mark this DisplayObject as dynamically created.
Definition: DisplayObject.h:597
size_t get_current_frame() const
Return 0-based index to current frame.
Definition: MovieClip.h:161
int getDepth() const
Return the depth affected by this DisplayList tag.
Definition: DisplayListTag.h:59
void set_textfield_variable(const ObjectURI &name, TextField *ch)
Set a TextField variable to this timeline.
Definition: MovieClip.cpp:1604
ValuesMap getValues()
Return the name,value map parsed out of the loaded stream.
Definition: LoadVariablesThread.h:83
void placeDisplayObject(DisplayObject *ch, int depth)
Definition: MovieClip.h:634
geometry::Point2d point
Definition: Point2d.h:143
MovieClip * to_movie()
Definition: MovieClip.h:413
virtual void getLoadedMovie(Movie *newMovie)
Accept a loaded Movie.
Definition: MovieClip.cpp:1824
void destroy()
destroy all DisplayObjects in this DisplayList
Definition: DisplayList.cpp:516
void constructAsScriptObject()
Construct this instance as an ActionScript object.
Definition: MovieClip.cpp:1669
virtual void visitNonProperties(KeyVisitor &v) const
Enumerate child DisplayObjects.
Definition: MovieClip.cpp:2003
void unloadMovie()
Definition: MovieClip.cpp:850
A manager for loadVariable requests.
Definition: LoadVariablesThread.h:49
@ UNLOAD
Definition: event_id.h:74
void replaceDisplayObject(DisplayObject *ch, int depth, bool use_old_cxform, bool use_old_matrix)
Replace the old DisplayObject at the specified depth with the given new DisplayObject.
Definition: DisplayList.cpp:230
void set_invalidated()
This function marks the DisplayObject as being modified in aspect and keeps track of current invalida...
Definition: DisplayObject.cpp:183
DisplayObject * getDisplayObjectAtDepth(int depth)
Return the DisplayObject at given depth in our DisplayList.
Definition: MovieClip.cpp:537
bool childInvalidated() const
Return whether this DisplayObject has and invalidated child or not.
Definition: DisplayObject.h:662
DSOTEXPORT DisplayObject * getDisplayObjectByName(string_table &st, const ObjectURI &uri, bool caseless) const
If there are multiples, returns the first match only!
Definition: DisplayList.cpp:155
std::map< ObjectURI, TextFields, ObjectURI::LessThan > TextFieldIndex
A container for textfields, indexed by their variable name.
Definition: MovieClip.h:91
@ PRESS
Definition: event_id.h:62
Definition: SWFMatrix.h:54
@ METHOD_NONE
Definition: MovieClip.h:420
void mergeDisplayList(DisplayList &newList, DisplayObject &o)
Merge the given display list.
Definition: DisplayList.cpp:732
void visitBackward(V &visitor)
Visit each DisplayObject in the list in reverse depth order (higher depth first).
Definition: DisplayList.h:353
ActionScript value type.
Definition: as_value.h:95
2D Point class
Definition: Point2d.h:39
A top-level, standalone Movie that can be loaded and played.
Definition: Movie.h:47
bool unloaded() const
Return true if this DisplayObject was unloaded from the stage.
Definition: DisplayObject.h:785
const SWFMatrix & getMatrix() const
Definition: PlaceObject2Tag.h:113
DisplayObject * getMask() const
Return the DisplayObject masking this instance (if any)
Definition: DisplayObject.h:410
VariablesMethod
The various methods for sending data in requests.
Definition: MovieClip.h:419
void set_clip_depth(int d)
See get_clip_depth()
Definition: DisplayObject.h:378
@ PROP_FOCUS_ENABLED
Definition: namedStrings.h:144
SWF Tag PlaceObject (4) or PlaceObject2 (9)
Definition: PlaceObject2Tag.h:86
std::vector< TextField * > TextFields
Definition: MovieClip.h:87
void replaceLevel(unsigned int num, Movie *external_movie)
Replace an existing level with a new movie.
Definition: movie_root.cpp:494
Global code (out of any function)
Definition: ExecutableCode.h:63
std::map< event_id, BufferList > Events
Definition: DisplayObject.h:900
std::string getTargetPath() const
Return full path to this object, in slash notation.
Definition: DisplayObject.cpp:567
virtual bool mouseEnabled() const
Return true if we have any mouse event handlers.
Definition: MovieClip.cpp:1551
void log_aserror(StringType msg, Args... args)
Definition: log.h:331
DisplayObject * addDisplayListObject(DisplayObject *obj, int depth)
Attach a DisplayObject at the specified depth.
Definition: MovieClip.cpp:649
bool hasEventHandler(const event_id &id) const
Return true if an handler for the given event is defined.
Definition: DisplayObject.cpp:462
void clear_invalidated()
Definition: DisplayObject.h:720
DisplayObject * parent() const
Return the parent of this DisplayObject, or NULL if the DisplayObject has no parent.
Definition: DisplayObject.h:252
boost::ptr_vector< swf_event > EventHandlers
Definition: PlaceObject2Tag.h:90
void add(const RangeType &range)
Add a Range to the set, merging when possible and appropriate.
Definition: snappingrange.h:250
#define IF_VERBOSE_ACTION(x)
Definition: log.h:384
virtual SWFRect getBounds() const
Get the composite bounds of all component drawing elements.
Definition: MovieClip.cpp:1976
void display(Renderer &renderer, const Transform &xform)
Display the list's DisplayObjects.
Definition: DisplayList.cpp:541
void addLiveChar(MovieClip *ch)
Register a newly born advanceable DisplayObject to the list of DisplayObjects to be advanced on next ...
Definition: movie_root.h:580
@ PLAYSTATE_PLAY
Definition: MovieClip.h:99
void execute_action(const action_buffer &ab)
Execute a single action buffer (DOACTION block)
Definition: MovieClip.cpp:1002
size_t get_bytes_total() const
Definition: MovieClip.h:183
virtual bool pointInShape(std::int32_t x, std::int32_t y) const
Return true if the given point falls in this DisplayObject's shape.
Definition: MovieClip.cpp:1416
void add_action_buffer(const action_buffer *a)
Definition: MovieClip.h:388
Sound mixer.
Definition: sound_handler.h:88
virtual void call_frame_actions(const as_value &frame_spec)
Execute the actions for the specified frame.
Definition: MovieClip.cpp:608
std::string url
Definition: gnash.cpp:59
void setStreamSoundId(int id)
Set the currently playing m_sound_stream_id.
Definition: MovieClip.cpp:2081
const ObjectURI & get_name() const
Definition: DisplayObject.h:432
as_object * getObject(const DisplayObject *d)
Return the as_object associated with a DisplayObject if it exists.
Definition: DisplayObject.h:1160
@ f
Definition: GnashKey.h:152
An instance of a DefineEditTextTag.
Definition: TextField.h:57
virtual bool unloadChildren()
Unload all contents in the displaylist and this instance.
Definition: MovieClip.cpp:1789
This class represents the 'Stage' and top-level movie.
Definition: movie_root.h:151
#define DSOTEXPORT
Definition: dsodefs.h:63
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:50
virtual bool set_member(const ObjectURI &uri, const as_value &val, bool ifFound=false)
Set a member value.
Definition: as_object.cpp:583
void set_target(DisplayObject *target)
Set default target for timeline opcodes.
Definition: as_environment.h:68
int getSWFVersion(const as_environment &env)
Definition: as_environment.cpp:657
uri
Definition: test.py:12
bool point_test(std::int32_t x, std::int32_t y) const
Return true if the given point is inside this SWFRect.
Definition: SWFRect.h:143
void stopStream(int id)
Notify the stage that a sound stream has stopped.
Definition: movie_root.cpp:273
void move_display_object(const SWF::PlaceObject2Tag *tag, DisplayList &dlist)
Proxy of DisplayList::moveDisplayObject()
Definition: MovieClip.cpp:1293
@ PRIORITY_INIT
Init actions, Init event handlers.
Definition: movie_root.h:535
string_table & getStringTable(const as_environment &env)
Definition: as_environment.cpp:639
virtual bool pointInVisibleShape(std::int32_t x, std::int32_t y) const
true if the given point falls in this DisplayObject's visible shape
Definition: MovieClip.cpp:1425
as_object * getObjectWithPrototype(Global_as &gl, const ObjectURI &c)
Definition: as_object.cpp:1109
Definition: DisplayObjectContainer.h:43
MovieClip(as_object *object, const movie_definition *def, Movie *root, DisplayObject *parent)
Construct a MovieClip instance.
Definition: MovieClip.cpp:503
bool goto_labeled_frame(const std::string &label)
Look up the labeled frame, and jump to it.
Definition: MovieClip.cpp:1175
const SWFRect & getBounds() const
Definition: DynamicShape.h:73
DisplayObject * toDisplayObject(bool skipRebinding=false) const
Return value as a DisplayObject or NULL if this is not possible.
Definition: as_value.cpp:490
Definition: ConstantPool.h:35
#define DSOEXPORT
Definition: dsodefs.h:55
virtual bool pointInShape(std::int32_t x, std::int32_t y) const =0
Return true if the given point falls in this DisplayObject's shape.
ObjectURI getURI(const VM &vm, const std::string &str, bool lowerCaseHint=false)
Definition: VM.h:290
void set_name(const ObjectURI &uri)
Set DisplayObject name, initializing the original target member.
Definition: DisplayObject.h:428
@ INITIALIZE
Definition: event_id.h:72
std::int32_t y
The y coordinate.
Definition: Point2d.h:46
const URL & baseURL() const
The base URL that should be used to resolve all relative URLs.
Definition: StreamProvider.h:117
For embedding event handlers in place_object_2.
Definition: swf_event.h:41
sound::sound_handler * soundHandler() const
Get a pointer to a sound::sound_handler set by a hosting application.
Definition: RunResources.h:96
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:169
A code segment.
Definition: action_buffer.h:50
Definition: LoadVariablesThread.h:41
virtual void destroy()
Mark this DisplayObject as destroyed.
Definition: DisplayObject.cpp:677
@ CONSTRUCT
Definition: event_id.h:82
void add_event_handler(const event_id &id, const action_buffer &code)
Set a built-in function handler for the given event.
Definition: DisplayObject.cpp:428
MovieClip * duplicateMovieClip(const std::string &newname, int newdepth, as_object *init_object=nullptr)
Duplicate this sprite in its timeline.
Definition: MovieClip.cpp:661
void moveDisplayObject(int depth, const SWFCxForm *color_xform, const SWFMatrix *mat, std::uint16_t *ratio)
Updates the transform properties of the object at the specified depth, unless its get_accept_anim_mov...
Definition: DisplayList.cpp:294
bool is_sprite() const
Return true if this value is a DISPLAYOBJECT.
Definition: as_value.h:224
void removeDisplayObject(int depth)
Removes the object at the specified depth.
Definition: DisplayList.cpp:331
virtual as_environment & get_environment()
Return a reference to the variable scope of this DisplayObject.
Definition: MovieClip.h:509
@ METHOD_GET
Definition: MovieClip.h:421
bool getTextFieldVariables(const ObjectURI &uri, as_value &val)
Get TextField variables.
Definition: MovieClip.cpp:558
std::uint16_t get_ratio() const
Definition: DisplayObject.h:360
const std::string & getName() const
Definition: PlaceObject2Tag.h:112
bool caseless(const as_object &o)
Return whether property matching is caseless.
Definition: as_object.h:924
Uniform Resource Locator.
Definition: URL.h:35
bool hasName() const
Definition: PlaceObject2Tag.h:119
void sendEvent(as_object &o, const as_environment &env, const ObjectURI &name)
Send a system event.
Definition: as_object.cpp:1099
@ RELEASE_OUTSIDE
Definition: event_id.h:64
std::uint8_t getBlendMode() const
Get an associated blend mode.
Definition: PlaceObject2Tag.h:147
DisplayList _displayList
Definition: DisplayObjectContainer.h:70
virtual as_object * pathElement(const ObjectURI &uri)
Definition: DisplayObject.cpp:160
@ o
Definition: GnashKey.h:161
virtual int version() const =0
Get the version of the Movie.
@ ENTER_FRAME
Definition: event_id.h:75
const SWFMatrix & getMatrix(const DisplayObject &o)
Get local transform SWFMatrix for this DisplayObject.
Definition: DisplayObject.h:1119
@ SWF
Definition: GnashKey.h:331
void log_unimpl(StringType msg, Args... args)
Definition: log.h:289
virtual void advance()
Advance to the next frame of the MovieClip.
Definition: MovieClip.cpp:869
void removeQueuedConstructor(MovieClip *target)
Removes a queued constructor from the execution queue.
Definition: movie_root.cpp:1489
@ PROP_PROTOTYPE
Definition: namedStrings.h:87
const SWFCxForm & getCxform() const
Definition: PlaceObject2Tag.h:114
bool is_object() const
Return true if this value is an object.
Definition: as_value.h:219
A URI for describing as_objects.
Definition: ObjectURI.h:45
bool invalidated() const
Return whether this DisplayObject has been invalidated or not.
Definition: DisplayObject.h:657
void replace_display_object(const SWF::PlaceObject2Tag *tag, DisplayList &dlist)
Proxy of DisplayList::replaceDisplayObject()
Definition: MovieClip.cpp:1305
const event_id & event() const
Definition: swf_event.h:62
std::int32_t x
Definition: BitmapData_as.cpp:434
bool isReferenceable(const DisplayObject &d)
Returns true if the DisplayObject is referenceable in ActionScript.
Definition: DisplayObject.h:1149
void attachCharacter(DisplayObject &newch, int depth, as_object *initObject)
Attach the given DisplayObject instance to current display list.
Definition: MovieClip.cpp:1226
const RunResources & runResources() const
Definition: movie_root.h:788
std::map< std::string, std::string > MovieVariables
Definition: MovieClip.h:93
@ b
Definition: GnashKey.h:148
DSOEXPORT void expand_to_transformed_rect(const SWFMatrix &m, const SWFRect &r)
Definition: SWFRect.cpp:74
bool getTextDefined() const
Return true if text is defined.
Definition: TextField.h:172
@ e
Definition: GnashKey.h:151
as_function * getRegisteredClass(const SWF::DefinitionTag *sprite) const
Get the actionscript class for constructing a MovieClip.
Definition: movie_root.cpp:286
@ TAG_ACTION
Definition: ControlTag.h:50
movie_root & stage() const
Get the movie_root to which this DisplayObject belongs.
Definition: DisplayObject.h:981
void omit_display()
Definition: MovieClip.cpp:1219
bool get_frame_number(const as_value &frame_spec, size_t &frameno) const
Parse frame spec and return a 0-based frame number.
Definition: MovieClip.cpp:577
virtual void mouseEvent(const event_id &id)
Called when a mouse event affects this MovieClip.
Definition: MovieClip.h:498
std::string getURLEncodedVars(as_object &o)
Get url-encoded variables.
Definition: as_object.cpp:946
bool unload()
Definition: DisplayList.cpp:477
bool visible() const
Definition: DisplayObject.h:623
@ DRAG_OUT
Definition: event_id.h:68
const StreamProvider & streamProvider() const
Get a StreamProvider instance.
Definition: RunResources.h:76
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:63
void draw(Renderer &renderer, const Transform &xform)
Draw this MovieClip.
Definition: MovieClip.cpp:1195
void setReachable() const
Mark this resource as being reachable.
Definition: GC.h:92