2007/10/22 | 使用ExternalInterface与外部容器交互. (转贴)
类别(转帖) | 评论(0) | 阅读(121) | 发表于 22:15
使用ExternalInterface与外部容器交互.  

ExternalInterface类是Flash 8 中新添加的用户处理于外部函数交互的类. 在功能上与 fscommand()CallFrame()CallLabel() 方法相似,但它更灵活、更通用。推荐对 JavaScript 和 ActionScript 之间的通讯使用 ExternalInterface。

方法
addCallback(methodName:String, instance:Object, method:Function) : Boolean//将 ActionScript 方法注册为可从容器调用。
call(methodName:String, [parameter1:Object]) : Object//调用由 Flash Player 容器公开的函数,传递零个或多个参数。

使用时必须在发布设置中把Player设为8.0.
Flash调用Javascript方法:
Flash中:

import flash.external.ExternalInterface;//导入类
ExternalInterface.call("ExtFunc");//调用外部的ExtFunc方法

Html中:
<script language="javascript">
function ExtFunc(){
alert(123)
}
</script>
可以测试一下了.

从容器调用Flash中公开的方法:
Flash中:
import flash.external.ExternalInterface;//导入类
function test() {
 test_txt.text = "123";
}
ExternalInterface.addCallback("forjstest", null, test);

Html中:
<script language="javascript">
function callBack() {
   thisMovie("calExt").forjstest();
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}
</script>
<button onClick="callBack()">Test</button>

在Flash所在的Object标签中,把id设为id="calExt".点Test可以测试一下.

注意:因为安全设置的问题,测试需要在localhost中进行.

-1

评论Comments

日志分类
首页[19]
我的日志[2]
个人FLASH[4]
色彩与图形[3]
PS与CD[0]
PHP.MYSQL[0]
转帖[10]