AS Code:
private init():void{
ExternalInterface.addCallback("callback_test",callback_test);
}public function callback_test(str:String):void{
Alert.show("","Flex from: " + str);
}JS Code:
function getSWF(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
}
else {
return document[movieName];
}
}
getSWF('m1').callback_test($("#txt1").val());//m1是flash object的ID现象:在IE下可以成功调用,
在FF下出错错误:getSWF('m1').callback_test is not a function
求真相,谢谢!!
private init():void{
ExternalInterface.addCallback("callback_test",callback_test);
}public function callback_test(str:String):void{
Alert.show("","Flex from: " + str);
}JS Code:
function getSWF(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
}
else {
return document[movieName];
}
}
getSWF('m1').callback_test($("#txt1").val());//m1是flash object的ID现象:在IE下可以成功调用,
在FF下出错错误:getSWF('m1').callback_test is not a function
求真相,谢谢!!
解决方案 »
- 动态添加的option,如何取到被选中的项的值,急!!
- 问一个简单的JS函数定义问题
- 【分享】WiFi上网高危陷阱 —— 浏览任意页面各大网站脚本文件皆中毒!
- 图层移动的问题?为什么移动的第一下总是先跑到左上角,如果解决!不用样式就行啦..怎么搞定
- 如何让网页关闭时提示是否设为首页?
- 请教高人xmlDom里面的load方法能否跨域名访问 在线等
- javascrip调用dll遇到的问题(在线等)
- 如何能在不按动键盘的情况下,自动检测出所以键的值!并显示出来!
- 在jsp页面中的java脚本<% %>取得一字符串v1, 在javascript中用 var vName = <%= v1%>给vName赋值, 结果总是报语法错, 应该如何赋值呢,
- 小问题,很多分
- 那位大侠使用过百度地图Autocomplete这个类
- 帮忙写一个windows对话框。。貌似是showdialog什么的
可以的,我有用Firebug调试。
对象是找到了,就是不认方法啊!!
//就根据这么多代码分析
function getSWF(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
}
else {
return document[movieName];
}
}
getSWF('m1')//这是一个function()
.callback_test($("#txt1").val());//这也是一个function
//两个不同的function类型的可以这么连在一起吗?
//m1是flash object的ID
刚又试了一下,将flash嵌入代码换了种写法:原始写法: <object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='100%' height='100%' id='m1'>
<param name='movie' value='m1.swf?version=3.2.0qa' />
<param name='quality' value='high' />
<param name='bgcolor' value='#000000' />
<param name='allowScriptAccess' value='sameDomain' />
<param name='allowFullScreen' value='true' />
<!--[if !IE]>-->
<object type='application/x-shockwave-flash' data='maaduu.swf?version=3.2.0qa' width='100%' height='100%'>
<param name='flashvars' value='video=&code=123CP$$&ver=2.7.8&lang=&maction=&testdb=&country=MY&ref=¬if_t=&userID=&episodeID=' />
<param name='quality' value='high' />
<param name='bgcolor' value='#000000' />
<param name='allowScriptAccess' value='sameDomain' />
<param name='allowFullScreen' value='true' />
<!--<![endif]-->
<!--[if gte IE 6]>-->
<p>Either scripts and active content are not permitted to run or Adobe Flash Player version<br />
10.1.0 or greater is not installed.</p>
<!--<![endif]-->
<a href='http://www.adobe.com/go/getflashplayer'>
<img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash Player' />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
新写法(加入embed标签): <object>
<embed id="maaduu" src="m1.swf" wmode="transparent" quality="high" width="100%" height="100%" align="L" scale="noborder" flashvars="width=300&height=500&color=blue" allowScriptAccess="sameDomain" type="application/x-shockwave-flash">
</embed>
</object>
结果奇怪的事情发生了,
原始写法是IE可以执行,FF和其它(暂时只测过google chrome)浏览器不能执行!
新写法则是FF可以执行,IE和其它浏览器不能执行!
<object type='application/x-shockwave-flash' width='1' height='1' data='a.swf' id='flashObj' ><param name='movie' value='a.swf' /><param name='allowScriptAccess' value='always'/></object>
function getSWF(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
}
else {
return document[movieName];
}
}获取到flash 对象后,马上调用flash 函数会出错,我的解决方案:
1、设置足够长的时间,让falsh 函数加载完毕,在调用
setTimeout(function(){getSWF('m1').callback_test($("#txt1").val());},5000);2、递归判断falsh 函数是否加载完毕function checkedFlash(){
var obj =getSWF('m1');
if(obj && obj.callback_test){
obj.callback_test($("#txt1").val());}else{
setTimeout(checkedFlash,10); // 递归
}}
3、 最好的方法是,falsh 函数加载完毕后,由 flash 通知 js 它已加载完毕。