用 javascript + actionScript 解决透明的flash在firefox下滚轮失效的问题!
2010-05-25 17:27
429 查看
在透明的flash在firefox下滚轮功能会失效,只有firefox有此问题,其他浏览器没有碰到过,这是因为firefox没有把鼠标的滚轮事件传给flash的原因。我们可以这样来解决:
1、在flash的宿主文件(HTML)下增加如下代码:
注,${application}为FLEX站点工程下XXX.template的参数,如为其他文件,请改为flash对象的ID值。
2、在flash程序初始化完后,执行此代码:
注:可以把这行代码加入初始化完成的事件回调函数中执行,此函数注册来自javascript函数"handleWheel"的事件,回调函数是handleWheel,此函数代码如下:
3、在上面这句代码的函数外,加入此函数:
OK了,编译完,用firefox打开看看!!可以了吧!!
1、在flash的宿主文件(HTML)下增加如下代码:
<mce:script language="JavaScript" type="text/javascript"><!-- if(!(document.attachEvent)) { window.addEventListener("DOMMouseScroll", handleWheel, false); } function handleWheel(event) { var app = window.document["${application}"]; if (app) { var o = {x: event.screenX, y: event.screenY, delta: event.detail, ctrlKey: event.ctrlKey, altKey: event.altKey, shiftKey: event.shiftKey} app.handleWheel(o); } } // --></mce:script>
注,${application}为FLEX站点工程下XXX.template的参数,如为其他文件,请改为flash对象的ID值。
2、在flash程序初始化完后,执行此代码:
ExternalInterface.addCallback("handleWheel", handleWheel);
注:可以把这行代码加入初始化完成的事件回调函数中执行,此函数注册来自javascript函数"handleWheel"的事件,回调函数是handleWheel,此函数代码如下:
3、在上面这句代码的函数外,加入此函数:
public function handleWheel(event:Object): void { var obj:InteractiveObject = null; var tmpGlbPoint:Point = new Point(this.mouseX, this.mouseY); var objects:Array = this.getObjectsUnderPoint(tmpGlbPoint); for (var i:int = objects.length - 1; i >= 0; i--) { if (objects[i] is InteractiveObject) { obj = objects[i] as InteractiveObject; break; } else { if (objects[i] is Shape && (objects[i] as Shape).parent) { obj = (objects[i] as Shape).parent; break; } } } if (obj) { var tmpP:Point = obj.globalToLocal(tmpGlbPoint); var mEvent:MouseEvent = new MouseEvent(MouseEvent.MOUSE_WHEEL, true, false, tmpP.x, tmpP.y, obj, event.ctrlKey, event.altKey, event.shiftKey, false, -Number(event.delta)); obj.dispatchEvent(mEvent); } }
OK了,编译完,用firefox打开看看!!可以了吧!!
相关文章推荐
- 用 javascript + actionScript 解决透明的flash在firefox下滚轮失效的问题!(转)
- 解决 Flash 透明模式下Firefox、Opera等浏览器无法输入中文的问题
- 在IE和FireFox中实现Flash背景透明和解决绝对定位元素被Flash遮住的问题
- Firefox对透明Flash失效的最新彻底解决方法
- 解决javascript:window.close()在chrome,Firefox下失效的问题
- javascript:window.close()在chrome,Firefox下失效问题解决方法
- 解决javascript:window.close()在chrome,Firefox下失效的问题
- 解决javascript:window.close()在chrome,Firefox下失效的问题
- [ActionScript] AS3解决html与flash鼠标滚轮冲突的问题
- Chrome(谷歌浏览器)和Firefox浏览器flash的swf文件发黑不透明问题解决方法
- javascript:window.close()在chrome,Firefox下失效问题解决方法
- javascript:window.close()在chrome,Firefox下失效问题解决方法
- Firefox下flash透明区域无法穿透的问题
- javascript firefox不显示本地预览图片问题的解决方法
- javascript和css在ie和firefox中关于兼容性问题的解决办法
- 解决FLASH遮住层的问题 IE,Firefox都适用!
- 解决ubuntu下Firefox Flash文字乱码或不能显示的问题
- [转]解决Linux下Firefox Flash文字乱码或不能显示的问题
- 解决ubuntu下Firefox Flash文字乱码或不能显示的问题
- 声音冲突及firefox中flash中汉字显示问题解决