当前位置: 首页 > 图文教程 > 网络编程 > Javascript > flash javascript之间的通讯方法小结

Javascript
javascript select 改变字的颜色
JS 字符串连接[性能比较]
jquery控制div下所有连接
JavaScript Date对象使用总结
JS面向对象、prototype、call()、apply()
JavaScript 动态将数字金额转化为中文大写金额
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
DOM下的节点属性和操作小结
childNodes.length与children.length的区别
javascript Prototype 对象扩展
window.event.srcElement 得到事件源对象
JavaScript 下拉菜单实现代码
用js获取元素属性的代码
jQuery live
css+js下拉菜单
javascript 贪吃蛇(详细注释版)
Javascript 强制类型转换函数
js 进度条实现代码
JavaScript 验证浏览器是否支持javascript的方法小结
Js 控制表单域代码

Javascript 中的 flash javascript之间的通讯方法小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 323 ::
收藏到网摘: n/a

不用getURL和fsCommand方法个国外的通信方法,值得一看 不用getURL和fsCommand方法
flash使用的actionscript跟javascript是非常相通的,下面描述如何互相调用函数:
1:javascript调用flash中的函数
在flash的脚本中增加
import flash.external.ExternalInterface;
假定要调用的函数是hello,as代码如下
function hello(){
return "hello";
}
ExternalInterface.addCallback("hello", this, hello);
//第一个参数为导出函数名,第三个参数为as的函数名,这样就可以在js中调用as的hello函数了
2:flash调用js的函数
ExternalInterface.call("hello2", "jacky");
//第一个参数是js的函数名,后面的是js函数的参数
3:如何互相调用
html代码如下:
<object type="application/x-shockwave-flash" data="test.swf" width="525" height="390" name="test">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test.swf" />
<param name="quality" value="high" />
<param name="scale" value="noScale" />
<param name="wmode" value="transparent" />
</object>
javascript代码如下:
function callFromFlash() {
var a=thisMovie("test").hello();
alert(a);
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
//注意,不能使用document.getElementById此类函数取得网页中的flash对象,只能使用thisMovie函数中的代码
国外看到的另一种方法:
You can't call a function, but you can change/set a variable and use the watch() method to execute the code whenever the value is changed.
ActionScript Code:
function changeType(prop, oldval, newval) {
//do your stuff
return newval;
}
var strType = "";
this.watch("strType", changeType);