Package | org.osmf.elements |
Class | public class SerialElement |
Inheritance | SerialElement ![]() ![]() ![]() ![]() |
Language Version: | ActionScript 3.0 |
Product Version: | OSMF 1.0 |
Runtime Versions: | Flash Player 10, AIR 1.5 |
The media elements that make up a SerialElement are treated as a single, unified media element. For example, if a SerialElement encapsulates a sequence of videos, the SerialElement will behave as if it's a single VideoElement, but one which plays several videos in sequence.
Typically, a trait on a SerialElement is a reflection of the "current" child of the composition. A SerialElement plays through its children in serial order. As the current child completes its execution, the next child in the sequence becomes the "current" child. To a client of the class, the changes from one current child to the next are hidden. They are only noticeable through changes to the traits of this class.
A childless SerialElement has no notion of a "current" child, so it reflects no traits. The first child that is added to a SerialElement immediately becomes the current child of the composition. If the current child is removed, the next child in the sequence becomes the new current child, if there is a next child. If there is no next child, the first child in the sequence becomes the current child.
The only way that the "current" status can pass from one
child to another is when the state of one of the current child's
traits changes in such a way that the
SerialElement knows that it needs to change its current child. For
example, if each child in the sequence has the PlayTrait,
the "current" status advances from one child to the next when a
child finishes playing and its PlayTrait's PlayState
property changes from PLAYING
to STOPPED
.
Another example: if the client of a SerialElement with a SeekTrait
seeks from one point to another, the "current"
status is likely to change from one child to another.
Here is how each trait is expressed when in serial:
- AudioTrait - The composite trait keeps the audible properties of all children in sync. When the volume of a child element (or the composite element) is changed, the volume is similarly changed for all audible children (and for the composite trait).
- BufferTrait - The composite trait represents the bufferable trait of the current child in the sequence. Any changes apply only to the current child.
- DisplayObjectTrait - The composite trait represents the DisplayObjectTrait of the current child in the sequence.
- DRMTrait - The composite trait represents the DRMTrait of the current child in the sequence.
- DVRTrait - The composite trait represents the DVRTrait of the current child in the sequence.
- DynamicStreamTrait - The composite trait represents the DynamicStreamTrait of the current child in the sequence. Any changes apply only to the current child.
- LoadTrait - The composite trait represents the LoadTrait of the current child in the sequence. Any changes apply only to the current child.
- PlayTrait - The composite trait represents the PlayTrait of the current child in the sequence. Any changes apply only to the current child.
- SeekTrait - The composite trait represents the SeekTrait of the current child in the sequence. A seek operation can change the current child.
- TimeTrait - The reported duration of the TimeTrait of a SerialElement is the sum of the current child and any completed children only. The reported value does not reflect the sum of the duration of all the children.
Property | Defined By | ||
---|---|---|---|
![]() | constructor : Object
A reference to the class object or constructor function for a given object instance. | Object | |
currentChild : MediaElement [read-only]
The currently active child of this SerialElement. | SerialElement | ||
![]() | metadataNamespaceURLs : Vector.<String> [read-only]
A Vector containing the namespace URLs for all Metadata
objects stored within this MediaElement. | MediaElement |
Method | Defined By | ||
---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener
receives notification of an event. | EventDispatcher | |
![]() |
Dispatches an event into the event flow. | EventDispatcher | |
![]() |
Checks whether the EventDispatcher object has any listeners registered for a specific type
of event. | EventDispatcher | |
![]() |
Indicates whether an object has a specified property defined. | Object | |
![]() |
Indicates whether an instance of the Object class is in the prototype chain of the object specified
as the parameter. | Object | |
![]() |
Indicates whether the specified property exists and is enumerable. | Object | |
![]() |
Removes a listener from the EventDispatcher object. | EventDispatcher | |
![]() |
Sets the availability of a dynamic property for loop operations. | Object | |
![]() |
Returns the string representation of this object, formatted according to locale-specific conventions. | Object | |
![]() |
Returns the string representation of the specified object. | Object | |
![]() |
Returns the primitive value of the specified object. | Object | |
![]() |
Checks whether an event listener is registered with this EventDispatcher object or any of
its ancestors for the specified event type. | EventDispatcher |
currentChild | property |
currentChild:MediaElement
[read-only] The currently active child of this SerialElement.
Implementation
public function get currentChild():MediaElement
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import org.osmf.elements.LightweightVideoElement; import org.osmf.elements.SerialElement; import org.osmf.media.MediaPlayerSprite; import org.osmf.media.URLResource; public class SerialElementExample extends Sprite { public function SerialElementExample() { super(); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; var mediaPlayerSprite:MediaPlayerSprite = new MediaPlayerSprite(); var serialElement:SerialElement = new SerialElement(); var videoElement:LightweightVideoElement = new LightweightVideoElement(); videoElement.resource = new URLResource("http://mediapm.edgesuite.net/strobe/content/test/AFaerysTale_sylviaApostol_640_500_short.flv"); var videoElement2:LightweightVideoElement = new LightweightVideoElement(); videoElement2.resource = new URLResource("http://mediapm.edgesuite.net/strobe/content/test/elephants_dream_768x428_24_short.flv"); serialElement.addChild(videoElement); serialElement.addChild(videoElement2); addChild(mediaPlayerSprite); mediaPlayerSprite.media = serialElement; } } }
Thu Dec 6 2018, 01:12 PM -08:00