用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: AIR 30.0 和更早版本, Flash Player 30.0 和更早版本, Flash Lite 4
Flex 4.6 和更早版本, Flash Pro CS6 和更早版本
隐藏过滤条件
flash.system 

MessageChannel  - AS3

x

顶级
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

语言元素

全局常量
全局函数
运算符
语句、关键字和指令
特殊类型

附录

新增内容
编译器错误
编译器警告
运行时错误
迁移到 ActionScript 3
支持的字符集
仅适用于 MXML 的标签
Motion XML 元素
Timed Text 标记
不推荐使用的元素的列表
AccessibilityImplementation 常量
如何使用 ActionScript 示例
法律声明
flash.system
public final class MessageChannel
继承MessageChannel Inheritance EventDispatcher Inheritance Object

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

MessageChannel 类提供了供 worker 用来与其他 worker 进行通信的机制。消息通道是一个单向通信通道。消息通道的发送 worker 使用消息通道将对象发送到接收 worker。MessageChannel 对象是在 worker 之间发送消息的唯一方法,该对象调度某个事件来通知接收方该消息可用。用来共享数据的其他机制可以设置某个值,但没有提供相应的事件来向您报告更改的数据。

每个 MessageChannel 对象都包含从发送 worker 发送到接收 worker 的一个消息对象队列。对 send() 的每次调用都会向该队列中添加一个对象。对 receive() 的每次调用都从该队列中检索最早的消息对象。

不要通过调用 MessageChannel() 构造函数来直接创建 MessageChannel 实例。要创建 MessageChannel 实例,请调用将在通道上发送消息的 Worker 对象的 createMessageChannel() 方法(将接收 Worker 对象作为参数传递)。

通过 MessageChannel 对象发送消息的典型工作流程如下所述:

  1. 调用发送 worker 的 createMessageChannel() 方法来创建消息通道

        // In the sending worker swf
        var sendChannel:MessageChannel;
        sendChannel = Worker.current.createMessageChannel(receivingWorker);
  2. 将消息通道传递到另一 worker:通过调用 Worker.setSharedProperty() 或通过从现有消息通道发送它

        receivingWorker.setSharedProperty("incomingChannel", sendChannel);
  3. 接收 worker 中的代码为 channelMessage 事件向 MessageChannel 对象注册一个侦听器

        // In the receiving worker swf
        var incomingChannel:MessageChannel;
        incomingChannel = Worker.current.getSharedProperty("incomingChannel");
        incomingChannel.addEventListener(Event.CHANNEL_MESSAGE, handleIncomingMessage);
  4. 发送 worker 中的代码通过调用 send() 方法发送一条消息

        // In the sending worker swf
        sendChannel.send("This is a message");
  5. 运行时调用接收 worker 代码中的事件处理程序,指出已发送了一条消息

        // In the receiving worker swf
        // This method is called when the message channel gets a message
        private function handleIncomingMessage(event:Event):void
        {
            // Do something with the message, as shown in the next code listing
        }
  6. 接收 worker 中的代码调用 receive() 方法来获取消息。receive() 方法返回的对象与传递给 send() 方法的对象具有相同的数据类型。

        var message:String = incomingChannel.receive() as String;

除了上面概述的异步工作流程外,您还可以使用包含 receive() 方法的一个替代工作流程来暂停接收 worker 中的代码并等待至消息被发送。有关更多信息,请参见 receive() 方法说明。

MessageChannel 类是在 worker 之间共享而不是在其之间复制的特殊对象类型之一。当您将消息通道从一个 worker 传递到另一个 worker(通过调用 Worker 对象的 setSharedProperty() 方法或通过使用一个 MessageChannel 对象)时,两个 worker 都引用运行时内存中的同一个 MessageChannel 对象。

相关 API 元素



公共属性
 属性由以下参数定义
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  messageAvailable : Boolean
[只读] 指示在 MessageChannel 的内部消息队列中是否有来自发送 worker 的一条或多条消息。
MessageChannel
  state : String
[只读] 指示 MessageChannel 对象的当前状态(open、closing 或 closed)。
MessageChannel
公共方法
 方法由以下参数定义
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
[覆盖] 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
MessageChannel
  
指示当前 MessageChannel 在所有消息已接收后关闭。
MessageChannel
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
表示对象是否已经定义了指定的属性。
Object
 Inherited
表示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
表示指定的属性是否存在、是否可枚举。
Object
  
receive(blockUntilReceived:Boolean = false):*
从通过此消息通道发送的消息的队列中检索单个消息对象。
MessageChannel
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
[覆盖] 从 EventDispatcher 对象中删除侦听器。
MessageChannel
  
send(arg:*, queueLimit:int = -1):void
从发送 worker 发送对象,并将其添加到接收 worker 的消息队列。
MessageChannel
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。
Object
  
[覆盖] 返回指定对象的字符串表示形式。
MessageChannel
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 由以下参数定义
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  在发送 worker 每次调用此 MessageChannel 对象的 send() 方法时将调度此事件,指出在 MessageChannel 实例的队列中有一个新的消息对象可用。MessageChannel
  当消息渠道的 state 属性改变时将调度此事件。MessageChannel
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
属性详细信息

messageAvailable

属性
messageAvailable:Boolean  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

指示在 MessageChannel 的内部消息队列中是否有来自发送 worker 的一条或多条消息。



实现
    public function get messageAvailable():Boolean

state

属性 
state:String  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

指示 MessageChannel 对象的当前状态(open、closing 或 closed)。此属性的可能值是在 MessageChannelState 类中作为常量定义的。



实现
    public function get state():String

相关 API 元素

方法详细信息

addEventListener

()方法
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表中的所有节点上注册事件侦听器。

成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。

请记住,注册该侦听器后,如果继续调用具有不同 typeuseCapture 值的 addEventListener(),则会创建单独的侦听器注册。例如,如果首先注册 useCapture 设置为 true 的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener(),并将 useCapture 设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。

不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的祖代。

如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。事件侦听器不会自动从内存中删除,因为只要调度对象存在,垃圾回收器就不会删除侦听器(除非 useWeakReference 参数设置为 true)。

复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。

如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。

如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。

参数

type:String — 事件的类型。
 
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void

函数可以有任何名称。

 
useCapture:Boolean (default = false)确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapturefalse,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false
 
priority:int (default = 0) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
 
useWeakReference:Boolean (default = false) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。

类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为 true 而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference 设置为 true,则该函数将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。

close

()方法 
public function close():void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

指示当前 MessageChannel 在所有消息已接收后关闭。

一旦您调用了此方法,您将无法再调用 send() 方法来向队列添加消息。send() 调用将失败并返回 false

您也可以只调用 receive() 方法来接收已在队列中等待的消息。如果队列为空,则 receive() 调用将返回 null


事件
channelState:Event — 当调用 close() 方法(此方法将 state 属性设置为 MessageChannelState.CLOSING)时将调度此事件。当已接收了所有消息并且 state 属性被设置为 MessageChannelState.CLOSED 时会再次调度此事件。

receive

()方法 
public function receive(blockUntilReceived:Boolean = false):*

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

从通过此消息通道发送的消息的队列中检索单个消息对象。

发送 worker 的代码每次调用 MessageChannel 对象的 send() 方法时,都将向消息通道的内容消息队列中添加一个对象。这些对象将堆积在队列中,直到它们被调用 receive() 方法的接收 worker 一次一个地移除。消息对象的接收将按照发送它们的顺序进行。

要检查队列中是否包含要接收的消息对象,请使用 messageAvailable 属性。

在标准情况下,传递到 send() 的对象将以 AMF3 格式进行序列化。当它被 receive() 调用从队列中移除时,它将反序列化为接收 worker 中的一个 ActionScript 对象(原始对象的一个副本),并且该 worker 将收到对该副本的引用。某些类型的对象是在 worker 之间共享的,而不是在其之间进行复制。在这种情况下,接收 worker 得到的是对共享对象本身的引用而不是该对象的新副本。有关此情况的更多信息,请参见 send() 方法说明。

如果消息队列为空并且您针对 blockUntilReceived 参数传递了 true,则方法的行为可能会改变。在这种情况下,worker 将在 receive() 调用处暂停其执行线程并且不执行更多代码。一旦发送 worker 调用 send()receive() 调用将立即通过接收消息来完成。然后,worker 将从跟在接收调用后的下一行代码继续代码执行。

参数

blockUntilReceived:Boolean (default = false) — 指示当队列为空时,worker 的执行线程应当接收消息对象然后继续执行 (false),还是应当在 receive() 调用处暂停并等待消息发送 (true)。

返回
* — 发送 worker 传递到 send() 方法的对象的副本。如果该对象是在 worker 之间共享的特殊类型之一,则返回值是对该共享对象的引用而不是对该对象的副本的引用。如果队列上没有消息可用,则此方法将返回 null

引发
IOError — 如果在调用此方法时通道处于关闭状态,或者如果 blockUntilReceived 参数导致执行暂停并且通道随后被另一 worker 关闭。
 
ArgumentError — 如果调用代码不在接收 worker 中
 
ScriptTimeoutError — 如果方法是从 Flash Player 中的原始 worker 中的代码调用的并且 blockUntilReceived 参数导致 worker 暂停的时间超过了脚本超时限制(缺省值为 15 秒)

相关 API 元素

removeEventListener

()方法 
override public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

从 EventDispatcher 对象中删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。

参数

type:String — 事件的类型。
 
listener:Function — 要删除的侦听器对象。
 
useCapture:Boolean (default = false)指出是为捕获阶段还是为目标和冒泡阶段注册了侦听器。如果为捕获阶段以及目标和冒泡阶段注册了侦听器,则需要对 removeEventListener() 进行两次调用才能将这两个侦听器删除,一次调用将 useCapture() 设置为 true,另一次调用将 useCapture() 设置为 false

send

()方法 
public function send(arg:*, queueLimit:int = -1):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

从发送 worker 发送对象,并将其添加到接收 worker 的消息队列。

传递到 arg 参数的对象几乎可以是任何对象。除了下面指出的例外,传递到 arg 参数的任何对象都不是按引用传递的。在调用 send() 后对一个 worker 中的对象所做的更改不会保留到另一个 worker。对象是通过序列化为 AMF3 格式并在调用了 receive() 时将其反序列化为接收 worker 中的一个新对象进行复制的。因此,无法以 AMF3 格式进行序列化的任何对象(包括显示对象)都不能传递给 arg 参数。为了使自定义类能够被正确传递,必须使用 flash.net.registerClassAlias() 函数或 [RemoteClass] 元数据来注册类定义。无论使用哪种方法,都必须为类的两个 worker 版本使用相同的别名。

有五种对象例外,对它们不适用对象不在 worker 之间共享的规则:

  • Worker
  • MessageChannel
  • 可共享 ByteArray(其 shareable 属性设为 true 的 ByteArray 对象)
  • Mutex
  • Condition

如果您将这些对象的一个实例传递给 arg 参数,则每个 worker 都将引用同一个底层对象。在一个 worker 中对实例所做的更改可立即用于另一 worker 中。此外,如果您多次使用 send() 传递了这些对象的同一实例,则运行时不会在接收 worker 中创建对象的新副本。相反,它将重用同一引用,这降低了对系统内存的使用。

默认情况下,此方法将对象添加到队列并立即返回,继续执行下一行代码。如果您希望阻止队列增长到特定大小以上,则可以使用 queueLimit 参数指定队列中可允许的最大项数。如果在您调用 send() 时队列中的项数多于您指定的限制,则 worker 将在 send() 调用处暂停执行线程。一旦 worker 调用 receive() 达到了足够的次数,使得队列大小小于指定的队列限制,则 send() 调用将立即完成。然后,worker 将从下一行代码继续执行。

参数

arg:* — 要添加到消息队列的对象
 
queueLimit:int (default = -1) — 消息队列可以包含的最大消息对象数。如果队列包含的对象超出了此限制,则发送 worker 将暂停执行,直到消息被接收并且队列大小降到此限制之下。


事件
channelMessage:Event — 调度此事件是为了通知接收 worker 在队列中有一个消息对象可用

引发
IOError — 如果在调用此方法时通道处于关闭状态,或者如果 queueLimit 参数导致执行暂停并且通道随后被另一 worker 关闭。
 
ArgumentError — 如果调用代码不在发送 worker 中
 
ScriptTimeoutError — 如果方法是从 Flash Player 中的原始 worker 中的代码调用的并且 queueLimit 参数导致 worker 暂停的时间超过了脚本超时限制(缺省值为 15 秒)

相关 API 元素

toString

()方法 
override public function toString():String

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

返回指定对象的字符串表示形式。

注意:Object 类的方法是在 Object 的原型上动态创建的。要在 Object 的子类中重新定义该方法,请不要使用 override 关键字。例如,Object 的一个子类实现 function toString():String 而不使用基类覆盖。

返回
String — 对象的字符串表示形式。
事件详细信息

channelMessage

事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CHANNEL_MESSAGE

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

在发送 worker 每次调用此 MessageChannel 对象的 send() 方法时将调度此事件,指出在 MessageChannel 实例的队列中有一个新的消息对象可用。

Event.CHANNEL_MESSAGE 常量定义 channelMessage 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target调度此事件的对象。

channelState

事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CHANNEL_STATE

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.4, AIR 3.4

当消息渠道的 state 属性改变时将调度此事件。

Event.CHANNEL_STATE 常量定义 channelState 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target调度此事件的对象。




[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。