包 | org.osmf.media |
类 | public class MediaFactory |
继承 | MediaFactory EventDispatcher Object |
子类 | DefaultMediaFactory |
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
工厂操作采用 MediaResourceBase 作为输入并生成 MediaElement 作为输出。
MediaFactory 维护 MediaFactoryItem 对象列表,列表中的每个对象都封装创建特定 MediaElement 所需的所有信息。MediaFactory 依靠每个 MediaFactoryItem 的 canHandleResourceFunction 方法查找可以处理指定 MediaResourceBase 的 MediaFactoryItem 对象。
工厂接口还公开查询特定 MediaFactoryItem 对象和加载插件(其中包含 MediaFactoryItem 对象)的方法。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
numItems : int [只读]
工厂管理的 MediaFactoryItem 数。 | MediaFactory |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | MediaFactory | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将指定的 MediaFactoryItem 添加到工厂。 | MediaFactory | ||
返回可以基于指定 MediaResourceBase 创建的 MediaElement。 | MediaFactory | ||
将事件调度到事件流中。 | EventDispatcher | ||
获取指定索引处的 MediaFactoryItem。 | MediaFactory | ||
返回具有指定 ID 的 MediaFactoryItem;如果此工厂中不存在指定的 MediaFactoryItem,则返回 null。 | MediaFactory | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
加载指定资源标识的插件。 | MediaFactory | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
从工厂中删除指定的 MediaFactoryItem。 | MediaFactory | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
为指定列表中 MediaFactoryItem 以外的指定资源返回最适合的 MediaFactoryItem。 | MediaFactory |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在 MediaFactory 已创建 MediaElement 时调度。 | MediaFactory | |||
在 MediaFactory 已成功加载插件时调度。 | MediaFactory | |||
在 MediaFactory 由于出错未能加载插件时调度。 | MediaFactory |
numItems | 属性 |
MediaFactory | () | 构造函数 |
public function MediaFactory()
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造函数。
addItem | () | 方法 |
public function addItem(item:MediaFactoryItem):void
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
将指定的 MediaFactoryItem 添加到工厂。添加 MediaFactoryItem 后,对于此 MediaFactoryItem 可以处理的任何 MediaResourceBase,工厂都能够创建相应的媒体元素。如果此工厂中已存在具有相同 ID 的 MediaFactoryItem,则新 MediaFactoryItem 对象会替换它。
参数
item:MediaFactoryItem — 要添加的 MediaFactoryItem。
|
引发
ArgumentError — 如果参数为 null 或参数包含 null ID 字段。
|
createMediaElement | () | 方法 |
public function createMediaElement(resource:MediaResourceBase):MediaElement
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回可以基于指定 MediaResourceBase 创建的 MediaElement。
如果工厂找不到能够在此工厂中创建此类 MediaElement 的 MediaFactoryItem 对象,则返回 null
。
参数
resource:MediaResourceBase — 应创建与 MediaElement 对应的 MediaResourceBase。
|
MediaElement — 创建的 MediaElement;如果无法从资源创建此类 MediaElement,则为 null 。
|
getItemAt | () | 方法 |
public function getItemAt(index:int):MediaFactoryItem
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
获取指定索引处的 MediaFactoryItem。
参数
index:int — 从其检索 MediaFactoryItem 的列表中的索引。
|
MediaFactoryItem — 此索引处的 MediaFactoryItem;如果没有 MediaFactoryItem,则为 null 。
|
getItemById | () | 方法 |
public function getItemById(id:String):MediaFactoryItem
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回具有指定 ID 的 MediaFactoryItem;如果此工厂中不存在指定 MediaFactoryItem,则返回 null
。
参数
id:String — 要检索的 MediaFactoryItem 的 ID。
|
MediaFactoryItem — 具有指定的 ID 的 MediaFactoryItem;如果此工厂中不存在指定的 MediaFactoryItem,则为 null 。
|
loadPlugin | () | 方法 |
public function loadPlugin(resource:MediaResourceBase):void
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
加载指定资源标识的插件。MediaFactory 不会重新加载已加载的插件。一旦加载成功,会将插件的 PluginInfo 属性内的 MediaFactoryItem 添加到此 MediaFactory 并调度 MediaFactoryEvent.PLUGIN_LOAD 事件。否则,如果加载失败,将调度 MediaFactoryEvent.PLUGIN_LOAD_ERROR 事件。
参数
resource:MediaResourceBase — 表示插件的 MediaResourceBase。对于远程(动态)插件,使用指向要加载的远程 SWF 的 URLResource。对于本地(静态)插件,使用 PluginInfoResource。
|
引发
ArgumentError — 如果资源为 null 或资源既不是 URLResource,也不是 PluginInfoResource。
|
removeItem | () | 方法 |
public function removeItem(item:MediaFactoryItem):void
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
从工厂中删除指定的 MediaFactoryItem。如果此工厂中不存在此类 MediaFactoryItem,则不执行任何操作。
参数
item:MediaFactoryItem — 要删除的 MediaFactoryItem。
|
引发
ArgumentError — 如果参数为 null 或参数包含 null ID 字段。
|
resolveItems | () | 方法 |
protected function resolveItems(resource:MediaResourceBase, items:Vector.<MediaFactoryItem>):MediaFactoryItem
为指定列表中 MediaFactoryItem 以外的指定资源返回最适合的 MediaFactoryItem。使用多个 MediaFactoryItem 可以处理的资源调用 createMediaElement
时,调用此方法。子类可以覆盖以选择最合适的子类。根据插件应优先于核心媒体类型这一理论,默认行为是选择对于框架不是“本机”项目的第一个项目。它根据是否存在以“org.osmf”开头的 ID 值做出此决定。
参数
resource:MediaResourceBase | |
items:Vector.<MediaFactoryItem> |
MediaFactoryItem |
mediaElementCreate | 事件 |
org.osmf.events.MediaFactoryEvent
属性 MediaFactoryEvent.type =
org.osmf.events.MediaFactoryEvent.MEDIA_ELEMENT_CREATE
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在 MediaFactory 已创建 MediaElement 时调度。
MediaFactoryEvent.MEDIA_ELEMENT_CREATE 常量为 mediaElementCreate 事件定义事件对象的 type 属性的值。pluginLoad | 事件 |
org.osmf.events.MediaFactoryEvent
属性 MediaFactoryEvent.type =
org.osmf.events.MediaFactoryEvent.PLUGIN_LOAD
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在 MediaFactory 已成功加载插件时调度。
MediaFactoryEvent.PLUGIN_LOAD 常量为 pluginLoad 事件定义事件对象的 type 属性的值。pluginLoadError | 事件 |
org.osmf.events.MediaFactoryEvent
属性 MediaFactoryEvent.type =
org.osmf.events.MediaFactoryEvent.PLUGIN_LOAD_ERROR
语言版本: | ActionScript 3.0 |
产品版本: | OSMF 1.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在 MediaFactory 由于出错未能加载插件时调度。
MediaFactoryEvent.PLUGIN_LOAD_ERROR 常量为 pluginLoadError 事件定义事件对象的 type 属性的值。package org.osmf.media { import flash.display.Sprite; import org.osmf.events.MediaFactoryEvent; public class MediaFactoryExample extends Sprite { public function MediaFactoryExample() { // Construct a media factory, and listen to its plug-in related events: var factory:MediaFactory = new MediaFactory(); factory.addEventListener(MediaFactoryEvent.PLUGIN_LOAD, onPluginLoaded); factory.addEventListener(MediaFactoryEvent.PLUGIN_LOAD_ERROR, onPluginLoadError); // Instruct the factory to load the plug-in at the given url: factory.loadPlugin(new URLResource("http://myinvalidurl.com/foo.swf")); } private function onPluginLoaded(event:MediaFactoryEvent):void { // Use the factory to create a media-element related to the plugin: var factory:MediaFactory = event.target as MediaFactory; factory.createMediaElement(new URLResource("http://myinvalidurl.com/content")); } private function onPluginLoadError(event:MediaFactoryEvent):void { // Handle plug-in loading failure: trace("Plugin failed to load."); } } }
Tue Jun 12 2018, 11:04 AM Z