0

我在 FlashDevelop 中测试一个程序,它使用 Flash player 10。需要 externalInterface 才能工作,但是在运行这个简单的测试程序时,它显示“ExternalInterface is not available”。这里可能有什么问题?如何让 ExternalInterface 工作?

<mx:Script>
    <![CDATA[
        import mx.controls.Alert;

        private function init():void {
            if (ExternalInterface.available) {
                ExternalInterface.call("alert",
                        "ExternalInterface is available");
            } else {
                Alert.show("ExternalInterface is not available");
            }
        }
    ]]>
</mx:Script>

<mx:ApplicationControlBar dock="true">
    <mx:Button id="button"
            label="ExternalInterface.available"
            click="init();" />
</mx:ApplicationControlBar>

Ps - 顺便说一句,当我在浏览器中运行此脚本时,它会显示“外部接口可用”。只有当我在 Flash Player 10 中运行它时,它才可用。

4

2 回答 2

7

独立播放器中不存在 ExternalInterface:

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000339.html

在所有其他情况下(例如在独立播放器中运行),ExternalInterface.available 属性返回 false。

它用于与包含 Flash 播放器的事物进行通信,当在独立播放器中运行时,没有任何内容包含它,因此没有任何可通信的内容。

于 2010-01-05T11:51:28.853 回答
0

查看 Flash as3 文档中的ExternalInterface示例。还有一个html设置。

基本上,您需要确保使用相同的字符串作为嵌入名称对象 id和 html 标签相同,正如您在flexamples 的示例中看到的那样。

查看该站点上的 html 源代码。

于 2010-01-05T11:42:54.747 回答