首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

flash js调用as 未执行 求解,该如何处理

2014-01-05 
flashjs调用as 未执行 求解本帖最后由 SilverNet 于 2011-10-11 11:18:55 编辑//js 中function btnC(){thi

flash js调用as 未执行 求解
本帖最后由 SilverNet 于 2011-10-11 11:18:55 编辑 //js 中


function btnC(){
thisMovie("myFlash").say();
}

function btnB(){
thisMovie("myFlash").checkName("哈哈",25)
}
function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
}
(function ($) {
$(document).ready(function () {
// 此处 FF 谷歌 会失效 只有IE会执行
thisMovie("myFlash").say();
//alert(thisMovie("myFlash").checkName("哈哈",25));
//getFlashMovieObject("myFlash").say();

//使用setTimeout 来实现 - 这样可以实现FF和谷歌调用 - 不过这个时间就有待商榷了
setTimeout(btnC,2000);
//setTimeout(btnB,2000);
});
})(jQuery);


// as中

ExternalInterface.addCallback("say",getUserInfo); 
ExternalInterface.addCallback("checkName",getCheckName); 

//html object
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  width="300" height="100" id="myFlash">

  <param name="movie" value="music.swf" />
  <param name="allowScriptAccess" value="always" />
  <param name="allowNetworking" value="all" />
  <param name="allowFullScreen" value="true" />
  <embed src="music.swf" quality="high" bgcolor="#ffffff" width="300" height="100" name="myFlash" swLiveConnect="true" align="middle" allowScriptAccess="always" allowNetworking="all" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>


问题:
放在 JQuery ready 函数里面得 thisMovie("myFlash").say(); 在FF 谷歌都无法调用成功,这个问题有什么好的办法解决呢? 求各位 给个思路 ,我本人是用setTimeout做了个解决方案,但这样也不靠谱,求各位大大想想办法
[解决办法]
这是flex 与 js 值交互的问题,你的那个问题是因为没拦截了,只有IE会执行,js 调用flex 会拦截,flex调用js不会拦截,你可以在你的生成swf的html代码里面 加入
wmode="transparent"    或者 window    Opaque
总结了几种wmode有什么不同,各自符合什么情况使用:
Window是默认的,窗口模式,吃CPU不严重
Transparent透明无窗口模式
Opaque不透明无窗口模式
效率最高的是window模式
透明用transparent
而需要动态交互(比如js)或者window模式不稳定的情况下用opaque
Window和transparent在ie6的iframe下拖动会出现花屏——个人经验。
还有一点,无窗口模式消耗资源大,但是能保证帧频
[解决办法]
Flash未加载完毕?
jQuery的$(document).ready是在DOM解析完毕之后就执行了,而不等图片、Flash等加载完毕。你用window.onload试一下?

热点排行