flash to js
用getURL就可以了,js的代码可以写在flash里面也可以写在html里面,查看利用js改变网页背景色
那么js to flash呢
其实也差不多,不过稍微有点不同,网上搜索了一下,掌握了一点技巧和知识
一个简单的例子
一下代码是在html中的js代码
<script language="javascript">
function toFlash(a,b,c){
window.document.jsToFlash.setVariable("myVar1",a);
window.document.jsToFlash.setVariable("myVar2",b);
window.document.jsToFlash.setVariable("myVar3",c);
window.document.jsToFlash.setVariable("ok",true);
}
</script>
flash中的代码
for (var i = 1; i<=3; i++) {
this.createTextField ("txt"+i, i, 100, 100+50*i, 200, 30);
this["txt"+i].text = "var"+i+" =";
}
//
getURL ("javascript:toFlash(\"hbb\",\"flash8\",\"5dblog\");", "_self");
onEnterFrame = function () {
if (ok) {
delete ok;
delete this.onEnterFrame;
txt1.text = "var1 = "+myVar1;
txt2.text = "var2 = "+myVar2;
txt3.text = "var3 = "+myVar3;
}
};
注意几点
一:js中的jsToFlash是html中object和embed标签中定义的flash对象的名称,默认的为你swf的名字
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="500" height="400" id="jsToFlash" align="middle">
<embed src="jsToFlash.swf" quality="high" bgcolor="#ffffff" width="500" height="400" name="jsToFlash" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
二:flash中getURL("javascirpt:");冒号后面紧跟语句,不要有空格
三:getURL后直接赋值js传递的变量是没用的,因为js还没有执行,所以变量为undefined,这个和loadMovie未加载出现的问题是一个道理,所以我在js最后多加一句ok为true,在flash里面用onEnterFrame检测,当ok为true时,说明js执行完毕,那么释放ok,删除onEnterFrame,并赋值各变量