適用於 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 標籤
移動 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。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.setSharedProperty(),或者透過現有訊息通道來傳送的方式,將訊息通道傳遞至其他 Worker

        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 物件的 setSharedProperty() 方法或使用 MessageChannel 物件,將訊息通道從一個 Worker 傳遞到另一個 Worker 時,兩個 Worker 都會參考執行階段記憶體中相同的 MessageChannel 物件。

相關 API 元素



公用屬性
 屬性定義自
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  messageAvailable : Boolean
[唯讀] 指出 MessageChannel 的內部訊息佇列中有來自傳送端 Worker 的一個或多個訊息。
MessageChannel
  state : String
[唯讀] 指出 MessageChannel 物件的目前狀態 (開啟、關閉中或已關閉)。
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 物件的目前狀態 (開啟、關閉中或已關閉)。這個屬性的可能值已定義為 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()。 然後,您就可以使用新的優先順序等級來重新註冊偵聽程式。

請記住,一旦您註冊了偵聽程式,對 addEventListener() 進行後續呼叫,若使用不同的 typeuseCapture 值,將會導致建立個別的偵聽程式註冊程序。 例如,如果您先將 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() 方法時,就會在訊息通道的內部訊息佇列中加入一個物件。這些物件會堆在佇列中,直到接收端 Worker 呼叫 receive() 方法逐一移除為止。訊息物件會依傳送的順序進行接收。

若要檢查佇列是否包含要接收的訊息物件,請使用 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。當呼叫 receive() 時,物件會透過序列化為 AMF3 格式並還原序列化為接收端 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 類別就會以英文顯示。