ExternalInterface.call缓存问题
时间:2010-12-28
来源:互联网
AS:
import flash.external.*;
var greeting:String;
var btn:MovieClip = createButton(100, 30, 0xCCCCCC);
btn.onPress = function() {
greeting = String(ExternalInterface.call("sayHello", "browser"));
this.mcTxt.text = greeting; // >> Hi Flash.
}
function createButton(width:Number, height:Number, color:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
var mcFmt:TextFormat;
mc.beginFill(color);
mc.lineTo(0, height);
mc.lineTo(width, height);
mc.lineTo(width, 0);
mc.lineTo(0, 0);
mcFmt = new TextFormat();
mcFmt.align = "center";
mcFmt.bold = true;
mc.createTextField("mcTxt", depth, 0, 0, width, height);
mc.mcTxt.text = "Call JS Function";
mc.mcTxt.setTextFormat(mcFmt);
return mc;
}
JS:
<script>
function sayHello(name) {
alert(">> Hello " + name + ".");
return ">> Hi Flash.";
}
</script>
万分感谢!
作者: v6goodv6good 发布时间: 2010-12-28
AS与JS通信不推荐使用返回值,因为返回值很多时候会获取失败。
作者: flash023 发布时间: 2010-12-28
不用返回值。那我采用SetVariable应该会好很多吧?我没有测试过返回的成功率!
JS:
function hao(){
var result=["a","b"]
window.document.mobileStore.SetVariable("myresult", result);
}
AS:
ExternalInterface.call("hao()");
var cj_result:Array = _root.myresult.split(",");
这样读取数据不知道效率及成功率如何?或者有什么更好的方法提供?
一直担心数据会缓存。而帮助并没有这方面的介绍。
感谢!
作者: v6goodv6good 发布时间: 2010-12-28
比如FLASH要从JS中取一个变量 A
先FLASH调用JS中的函数 XXX
JS中在XXX函数中调用FLASH的函数YYY ,调用时把A传递过去
作者: flash023 发布时间: 2010-12-28
第一个例子你js函数里返回的是固定字符串,每次返回本来就应该一样啊
作者: rukey67 发布时间: 2010-12-28
但是我需要的是传递多个变量。
不知道是否支持多个形参?
就是
先FLASH调用JS中的函数 XXX
JS中在XXX函数中调用FLASH的函数YYY ,调用时把A,B,C,D...传递过去
作者: v6goodv6good 发布时间: 2010-12-28
也可以直接传递对象YYY({a:A,b:B,n:N..});
作者: flash023 发布时间: 2010-12-28
感谢版主!
作者: v6goodv6good 发布时间: 2010-12-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28