org.osmf.elements

# SerialElement - AS3 OSMF

Package | org.osmf.elements
Class | public class SerialElement
Inheritance | SerialElement CompositeElement MediaElement EventDispatcher Object

Language Version: | ActionScript 3.0

Product Version: | OSMF 1.0

Runtime Versions: | Flash Player 10, AIR 1.5

SerialElement is a media composition whose elements are presented serially (i.e. in sequence).

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.

View the examples

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | container : IMediaContainer [read-only] The media container that this element uses. | MediaElement
|  | 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
|  | numChildren : int [read-only] The number of child MediaElements in this media composition. | CompositeElement
|  | resource : MediaResourceBase The media resource that this media element operates on. | MediaElement
|  | traitTypes : Vector.<String> [read-only] A Vector of MediaTraitType values representing the trait types on this media element. | MediaElement

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | SerialElement() Constructor. | SerialElement
|  | addChild(child:MediaElement):MediaElement Adds the specified child to the end of the list. | CompositeElement
|  | addChildAt(child:MediaElement, index:Number):MediaElement Adds the child to the list at the specified index. | CompositeElement
|  | 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
|  | addMetadata(namespaceURL:String, metadata:Metadata):void Adds a Metadata object to this MediaElement under the specified namespace URL. | MediaElement
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | EventDispatcher
|  | getChildAt(index:int):MediaElement Gets the child at the specified index. | CompositeElement
|  | getChildIndex(child:MediaElement):int Returns the index of the child if it is in the list such that getChildAt(index) == child. | CompositeElement
|  | getMetadata(namespaceURL:String):Metadata Returns the Metadata object that is stored under this MediaElement with the specified namespace URL. | MediaElement
|  | getTrait(type:String):org.osmf.traits:MediaTraitBase Returns the media trait of the specified type. | MediaElement
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | EventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | hasTrait(type:String):Boolean Determines whether this media element has a media trait of the specified type. | MediaElement
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeChild(child:MediaElement):MediaElement Removes the specified child and returns it. | CompositeElement
|  | removeChildAt(index:int):MediaElement Removes the child at the specified index and returns it. | CompositeElement
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | EventDispatcher
|  | removeMetadata(namespaceURL:String):Metadata Removes the Metadata object that was stored under this MediaElement with the specified namespace URL. | MediaElement
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | EventDispatcher

Protected Methods
Hide Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | addTrait(type:String, instance:org.osmf.traits:MediaTraitBase):void Adds a new media trait to this media element. | MediaElement
|  | removeTrait(type:String):org.osmf.traits:MediaTraitBase Removes a media trait from this media element. | MediaElement
|  | setupTraits():void Sets up the traits for this media element. | MediaElement

Events
Click for more information on events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | activate | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher
|  | containerChange | Dispatched when the element's container property changed. | MediaElement
|  | deactivate | [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher
|  | mediaError | Dispatched when an error which impacts the operation of the media element occurs. | MediaElement
|  | mediaInfo | Dispatched when a info which impacts the operation of the media element is available. | MediaElement
|  | metadataAdd | Dispatched when a Metadata object has been added to this media element. | MediaElement
|  | metadataRemove | Dispatched when a Metadata object has been removed from this media element. | MediaElement
|  | traitAdd | Dispatched when a trait is added to the media element. | MediaElement
|  | traitRemove | Dispatched when a trait is removed from the media element. | MediaElement

Property Detail

### currentChild

property

`currentChild:MediaElement` [read-only]

The currently active child of this SerialElement.

Implementation
`public function get currentChild():MediaElement`
Constructor Detail

### SerialElement

()
Constructor

`public function SerialElement()`

Language Version: | ActionScript 3.0

Product Version: | OSMF 1.0

Runtime Versions: | Flash Player 10, AIR 1.5

Constructor.

Examples How to use this example
SerialElementExample.as
Copy

    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;

            }
        }
    }

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00