適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: AIR 30.0 和更早版本, Flash Player 30.0 和更早版本, Flash Lite 4
Flex 4.6 和更早版本, Flash Pro CS6 和更早版本
隱藏篩選
flash.external 

ExternalInterface  - 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.external
類別public final class ExternalInterface
繼承ExternalInterface Inheritance Object

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

ExternalInterface 類別是應用程式開發介面,讓 ActionScript 與 SWF 容器 (例如具有 JavaScript 的 HTML 頁面或是使用 Flash Player 顯示 SWF 檔案的桌面應用程式) 之間可以直接通訊。

使用 ExternalInterface 類別,您可以在 HTML 頁面中使用 JavaScript,在 Flash 執行階段中呼叫 ActionScript 函數。ActionScript 函數可以傳回一個值,JavaScript 會立即接收做為該呼叫的傳回值。

這個功能會取代 fscommand() 方法。

您可以在下列瀏覽器與作業系統的組合中使用 ExternalInterface 類別:

瀏覽器作業系統作業系統
Internet Explorer 5.0 和更新版本Windows 
Netscape 8.0 和更新版本Windows MacOS 
Mozilla 1.7.5 和更新版本Windows MacOS 
Firefox 1.0 和更新版本Windows MacOS 
Safari 1.3 和更新版本  MacOS 

Flash Player for Linux 9.0.31.0 版和更新版本在下列瀏覽器中支援 ExternalInterface 類別:

瀏覽器
Mozilla 1.7.x 和更新版本
Firefox 1.5.0.7 和更新版本
SeaMonkey 1.0.5 和更新版本

ExternalInterface 類別要求使用者的網頁瀏覽器必須支援 ActiveX® 或由某些瀏覽器所公開的 NPRuntime API 以供編寫外掛程式 Script。即使瀏覽器和作業系統的組合不在上列項目之中,但只要它們支援 NPRuntime API,應該就會支援 ExternalInterface 類別。 請參閱 http://www.mozilla.org/projects/plugins/npruntime.html

注意:在 HTML 網頁內嵌 SWF 檔時,請確定 id 特質已設定,而且 objectidname 特質以及 embed 標籤未包含下列字元:

 . - + * / \
 

Flash Player 應用程式的注意事項:Flash Player 9.0.115.0 版本以及之後版本允許 . (句點) 字元出現在 idname 特質中。

Flash Player 應用程式的注意事項:在瀏覽器中執行的 Flash Player 10 和更新版本中,使用這個類別以程式設計的方式開啟彈出式視窗可能不會成功。各種瀏覽器 (和瀏覽器組態設定) 可能隨時封鎖彈出式視窗,所以無法保證彈出式視窗一定會出現。但為了確保最大的成功機會,最好只在為了回應使用者動作 (例如,按下滑鼠或按下按鍵事件的事件處理常式中) 而直接執行的程式碼中使用這個類別來開啟彈出式視窗。

透過 JavaScript,您可以在 HTML 網頁執行下列動作:

  • 呼叫任何 JavaScript 函數。
  • 用任何名稱來傳遞任何數目的引數。
  • 傳遞不同的資料類型 (Boolean、Number、String 等等)。
  • 接收來自 JavaScript 函數的傳回值。

透過 JavaScript,您可以在 HTML 網頁執行下列動作:

  • 呼叫 ActionScript 函數。
  • 使用標準函數呼叫標記法來傳遞引數。
  • 將值傳回 JavaScript 函數。

Flash Player 應用程式的注意事項:目前 Flash Player 不支援在 HTML 表單內嵌 SWF 檔案。

AIR 應用程式注意事項:在 Adobe AIR 中,ExternalInterface 類別可以用來在 HTMLLoader 控制項中載入之 HTML 頁面的 JavaScript,與該 HTML 頁面中所內嵌 SWF 內容的 ActionScript 通訊。

檢視範例

更多範例

相關 API 元素



公用屬性
 屬性定義自
  available : Boolean
[靜態] [唯讀] 指出這個播放程式是否在提供外部介面的容器內。
ExternalInterface
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  marshallExceptions : Boolean = false
[靜態] 指出外部介面是否應該嘗試傳遞 ActionScript 例外給目前瀏覽器,及傳遞 JavaScript 例外給播放程式。
ExternalInterface
  objectID : String
[靜態] [唯讀] 傳回 Internet Explorer 中 object 標籤的 id 特質,或 Netscape 中 embed 標籤的 name 特質。
ExternalInterface
公用方法
 方法定義自
  
addCallback(functionName:String, closure:Function):void
[靜態] 將 ActionScript 方法註冊為可從容器呼叫。
ExternalInterface
  
call(functionName:String, ... arguments):*
[靜態] 呼叫 SWF 容器公開的函數,傳遞 0 個或更多引數。
ExternalInterface
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
 Inherited
會傳回指定之物件的字串形式。
Object
 Inherited
會傳回指定之物件的基本值。
Object
屬性詳細資訊

available

屬性
available:Boolean  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

指出這個播放程式是否在提供外部介面的容器內。 如果可使用外部介面,則此屬性為 true;否則為 false

注意:將 External API 與 HTML 搭配使用時,務必確認 HTML 已經完成載入後,再嘗試呼叫任何 JavaScript 方法。



實作
    public static function get available():Boolean

範例  ( 如何使用本範例 )
下列範例使用 available 屬性來判斷播放程式是否在提供外部介面的容器內。
     package {
       import flash.text.TextField;
       import flash.display.MovieClip;
       import flash.external.ExternalInterface;
     
       public class extint_test extends MovieClip {
         public function extint_test() {
           var isAvailable:Boolean = ExternalInterface.available;
           var availTxt:TextField = new TextField();
           availTxt.text = isAvailable.toString();
           addChild(availTxt);
         }
       }
     }
     

marshallExceptions

屬性 
public static var marshallExceptions:Boolean = false

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4

指出外部介面是否應該嘗試傳遞 ActionScript 例外給目前瀏覽器,及傳遞 JavaScript 例外給播放程式。您必須將這個屬性明確設定為 true,才能在 ActionScript 中捕捉 JavaScript 例外,及在 JavaScript 中捕捉 ActionScript 例外。

相關 API 元素


範例  ( 如何使用本範例 )
下列範例會建立 ActionScript 函數,並使用 addCallback() 方法向包含的瀏覽器註冊這個函數。 新函數會擲出例外,讓瀏覽器中執行的 JavaScript 程式碼可以捕捉它。 這個範例也包含 try..catch 陳述式,以捕捉瀏覽器在呼叫 throwit() 函數時擲出的任何例外。
package
{
    import flash.external.*
    import flash.net.*;
    import flash.display.*;
    import flash.system.System;
    public class ext_test extends Sprite {
    function ext_test():void {
        ExternalInterface.marshallExceptions = true;
        ExternalInterface.addCallback("g", g);

        try {
        ExternalInterface.call("throwit");
        } catch(e:Error) {
        trace(e)
        }
    }
    function g() { throw new Error("exception from actionscript!!!!") }
    }
}

objectID

屬性 
objectID:String  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

傳回 Internet Explorer 中 object 標籤的 id 特質,或 Netscape 中 embed 標籤的 name 特質。



實作
    public static function get objectID():String
方法詳細資訊

addCallback

()方法
public static function addCallback(functionName:String, closure:Function):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

將 ActionScript 方法註冊為可從容器呼叫。成功叫用 addCallBack() 後,容器內的 JavaScript 或 ActiveX 程式碼就可以呼叫播放程式中的已註冊函數。

注意:對於在瀏覽器內執行的 local 內容,只有當 SWF 檔和內含的網頁位於本機信任的安全執行程序之內時,呼叫 ExternalInterface.addCallback() 方法才有作用。如需詳細資訊,請參閱「Flash Player 開發人員中心」主題:「安全性」。

參數

functionName:String — 容器叫用函數所依據的名稱。
 
closure:Function — 要叫用的函數結束項。 這可能是獨立函數,或是參照物件實體方法的方法結束項。 藉由傳遞方法結束項,您可以將回呼導向特定物件實體的方法。

注意:在具有 null 結束項值的現有回呼函數上重複 addCallback() 將會移除回呼。


擲回值
Error — 容器不支援連入呼叫。 只有 Windows 的 Internet Explorer 和使用 NPRuntime API 的瀏覽器 (例如 Mozilla 1.7.5 和更新版本或 Firefox 1.0 和更新版本) 支援連入呼叫。
 
SecurityError — ActionScript 已經將具有指定名稱的回呼加入至您無法存取的執行程序中,因此您無法覆寫該回呼。 如果要解決這個問題,請重新編寫原先呼叫 addCallback() 方法的 ActionScript,讓它也呼叫 Security.allowDomain() 方法。
 
SecurityError — 這個容納環境屬於呼叫程式碼無法存取的安全執行程序。 若要解決這個問題,請執行下列步驟:
  1. 在容納的 HTML 網頁中,為 SWF 檔的 object 標籤設定下列參數:

    <param name="allowScriptAccess" value="always" />

  2. 在 SWF 檔案中,加入下列 ActionScript:

    flash.system.Security.allowDomain( sourceDomain )

相關 API 元素

call

()方法 
public static function call(functionName:String, ... arguments):*

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

呼叫 SWF 容器公開的函數,傳遞 0 個或更多引數。如果無法取得想要的函數,該呼叫會傳回 null,否則會傳回函數所提供的值。 Opera 或 Netscape 瀏覽器「」允許遞迴。在這些瀏覽器上,遞迴呼叫會產生 null 回應 (Internet Explorer 和 Firefox 瀏覽器不支援遞迴)。

如果容器是 HTML 網頁,則此方法會叫用 script 元素中的 JavaScript 函數。

如果容器是其他 ActiveX 容器,則此方法會傳送特定名稱的 FlashCall ActiveX 事件,由容器處理該事件。

如果容器掛載著 Netscape 外掛程式,您就可以為新的 NPRuntime 介面撰寫自訂支援,或是嵌入 HTML 控制項,再將播放程式嵌入 HTML 控制項內。如果嵌入的是 HTML 控制項,您就可以原生容器應用程式的 JavaScript 介面,來與播放程式進行通訊。

注意:對於在瀏覽器內執行的 local 內容,只有當 SWF 檔和內含的網頁 (如果有) 位於本機信任的安全執行程序之內時,才允許呼叫 ExternalInterface.call() 方法。 您也可以拒絕 SWF 檔使用這個方法,方式是在包含 SWF 內容的 HTML 網頁中,設定 objectembed 標籤的 allowNetworking 參數。 如需詳細資訊,請參閱「Flash Player 開發人員中心」主題:「安全性」。

Flash Player 應用程式的注意事項:在 Flash Player 10 和 Flash Player 9 更新 5 中,如果啟用了彈出式視窗封鎖程式,某些網頁瀏覽器會限制這個方法。在此狀況中,只有在回應使用者事件 (例如,在按下滑鼠或按下按鍵事件的事件處理常式中) 時,才能成功呼叫這個方法。

參數

functionName:String — 要在容器中呼叫之函數的英數字元名稱。使用非英數字元的函數名稱會導致執行階段錯誤 (錯誤 2155)。您可以使用 try..catch 區塊來處理錯誤。
 
... arguments — 要傳遞至容器中函數的引數。 您可以指定零個或多個參數 (以逗號分隔)。 它們可以是任何 ActionScript 資料類型。 呼叫 JavaScript 函數時,ActionScript 類型會自動轉換成 JavaScript 類型,呼叫其他 ActiveX 容器時,則會將參數編碼在要求訊息內。

傳回值
* — 從容器收到的回應。 如果呼叫失敗 (例如,容器中沒有這個函數、無法取得介面、發生遞迴 (使用 Netscape 或 Opera 瀏覽器時),或者出現安全性問題),便會傳回 null,並擲出錯誤。

擲回值
Error — 容器不支援外送呼叫。 只有 Windows 的 Internet Explorer 和使用 NPRuntime API 的瀏覽器 (例如 Mozilla 1.7.5 和更新版本或 Firefox 1.0 和更新版本) 支援外送呼叫。
 
SecurityError — 這個容納環境屬於呼叫程式碼無法存取的安全執行程序。 若要解決這個問題,請執行下列步驟:
  1. 在容納的 HTML 網頁中,為 SWF 檔的 object 標籤設定下列參數:

    <param name="allowScriptAccess" value="always" />

  2. 在 SWF 檔案中,加入下列 ActionScript:

    flash.system.Security.allowDomain( sourceDomain )


範例  ( 如何使用本範例 )

以下範例顯示如何使用 ExternalInterface 類別 (flash.external.ExternalInterface) 從 Flash Player 傳送字串到 HTML 容器,此容器使用 JavaScript alert() 函數顯示。範例由 ActionScriptExamples.com 提供。
//
// Requires:
//   - A Flash Professional Label component on the Stage with an instance name of "lbl".
//   - A Flash Professional Button component on the Stage with an instance name of "button".
//
var xmlResponse:String = "<invoke name=\"isReady\" returntype=\"xml\"><arguments><number>1</number><number>" + stage.stageWidth + "</number><number>" + stage.stageHeight + "</number></arguments></invoke>";
 
lbl.text = "ExternalInterface.available: " + ExternalInterface.available;
lbl.width = 200;
button.enabled = ExternalInterface.available;
button.addEventListener(MouseEvent.CLICK, button_click);
 
function button_click(evt:MouseEvent):void {
    ExternalInterface.call("alert", xmlResponse);
}
ExternalInterfaceExample.as

下列範例將示範如何在 Flash Player 與 HTML 容器之間傳送資料。
package  {
    
    import flash.display.Sprite;
    import flash.events.*;
    import flash.external.ExternalInterface;
    import flash.text.TextField;
    import flash.utils.Timer;
    import flash.text.TextFieldType;
    import flash.text.TextFieldAutoSize;
    import flash.system.Security;
    
    public class ExternalInterfaceExample extends Sprite 
    {
        
    private var input:TextField;
        private var output:TextField;
        private var sendBtn:Sprite;
        
        public function ExternalInterfaceExample() 
        {
            // constructor code
            Security.allowDomain("*");
            
            
            input = new TextField();
            input.type = TextFieldType.INPUT;
            input.background = true;
            input.border = true;
            input.width = 350;
            input.height = 18;
            addChild(input);

            sendBtn = new Sprite();
            sendBtn.mouseEnabled = true;
            sendBtn.x = input.width + 10;
            sendBtn.graphics.beginFill(0xcccccc);
            sendBtn.graphics.drawRoundRect(0, 0, 80, 18, 10, 10);
            sendBtn.graphics.endFill();
            sendBtn.addEventListener(MouseEvent.CLICK, clickHandler);
            addChild(sendBtn);

            output = new TextField();
            output.y = 25;
            output.width = 450;
            output.height = 325;
            output.multiline = true;
            output.wordWrap = true;
            output.border = true;
            output.text = "Initializing...\n";
            addChild(output);
            
            
            if (ExternalInterface.available) {
                try {
                    output.appendText("Adding callback...\n");
                    ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
                    if (checkJavaScriptReady()) {
                        output.appendText("JavaScript is ready.\n");
                    } else {
                        output.appendText("JavaScript is not ready, creating timer.\n");
                        var readyTimer:Timer = new Timer(100, 0);
                        readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
                        readyTimer.start();
                    }
                } catch (error:SecurityError) {
                    output.appendText("A SecurityError occurred: " + error.message + "\n");
                } catch (error:Error) {
                    output.appendText("An Error occurred: " + error.message + "\n");
                }
            } else {
                output.appendText("External interface is not available for this container.");
            }
        }
        private function receivedFromJavaScript(value:String):void {
            output.appendText("JavaScript says: " + value + "\n");
        }
        private function checkJavaScriptReady():Boolean {
            var isReady:Boolean = ExternalInterface.call("isReady");
            return isReady;
        }
        private function timerHandler(event:TimerEvent):void {
            output.appendText("Checking JavaScript status...\n");
            var isReady:Boolean = checkJavaScriptReady();
            if (isReady) {
                output.appendText("JavaScript is ready.\n");
                output.appendText("ExternalInterface.objectID = " + ExternalInterface.objectID + "\n");
                Timer(event.target).stop();
            }
        }
        private function clickHandler(event:MouseEvent):void {
            if (ExternalInterface.available) {
                ExternalInterface.call("sendToJavaScript", input.text);
            }
        }
    }
}


為了測試先前的 ActionScript 程式碼,請使用下列 HTML 範本來嵌入所產生的 SWF 檔案:
 <!-- saved from url=(0014)about:internet -->
 <html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>ExternalInterfaceExample</title>
 <script language="JavaScript">
     var jsReady = false;
     function isReady() {
         return jsReady;
     }
     function pageInit() {
         jsReady = true;
         document.forms["form1"].output.value += "\n" + "JavaScript is ready.\n";
     }
     function sendToActionScript(value) {
       document.getElementById("ExternalInterfaceExample").sendToActionScript(value);
     }
     function sendToJavaScript(value) {
         document.forms["form1"].output.value += "ActionScript says: " + value + "\n";
     }
 </script>
 </head>
 <body onload="pageInit();">
 
  <object id="ExternalInterfaceExample"  name="ExternalInterfaceExample" 
  type="application/x-shockwave-flash" data="ExternalInterfaceExample.swf" width="550" height="400">
    <param name="movie" value="ExternalInterfaceExample.swf"/>
    <param name="quality" value="high"/>
    <param name="allowscriptaccess" value="always"/>
    <a href="http://www.adobe.com/go/getflash">
        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player"/>
    </a>
  </object>
 
     <form name="form1" onsubmit="return false;">
         <input type="text" name="input" value="" />
         <input type="button" value="Send" onclick="sendToActionScript(this.form.input.value);" /><br />
         <textarea cols="60" rows="20" name="output" readonly="true">Initializing...</textarea>
     </form>
 
 </body>
 </html>
 




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。