flex <param name="wmode" value=&#
发布时间:2020-12-15 05:12:48 所属栏目:百科 来源:网络整理
导读:1、网页嵌入flash后会覆盖html dom 元素,使用wmode为transparent时可以解决覆盖问题,因为此时它已经透明了。 2、transparent带来另一个问题,鼠标滚轮控制不了flash中的滚动条。 3、思路:通过js捕获鼠标滚轮事件,js调用flash方法传递滚轮-flash组件调用
1、网页嵌入flash后会覆盖html dom 元素,使用wmode为transparent时可以解决覆盖问题,因为此时它已经透明了。 2、transparent带来另一个问题,鼠标滚轮控制不了flash中的滚动条。 3、思路:通过js捕获鼠标滚轮事件,js调用flash方法传递滚轮->flash组件调用滚轮事件传递的参数。 eg:使用js捕获鼠标滚轮事件后控制flex dataGrid组件的滚动条 js代码 function addMouseWheelListener(){ var flash = thisMovie("videoControl"); var ua = navigator.userAgent; if(ua.indexOf("Firefox") > -1){ flash.addEventListener('DOMMouseScroll',onWheelZoom,false); }else if(ua.indexOf("MSIE") == -1){ flash.addEventListener('mousewheel',false); }else{ flash.attachEvent('onmousewheel',onWheelZoom); } } function onWheelZoom(event){ var app = window.document["videoControl"]; if (app) { var o= {delta: event.wheelDelta} thisMovie("videoControl").jsWheelZoom(o); } } flex代码 在初始化时候注册js 监听方法和回调方法 ,方法如下 ExternalInterface.addCallback("jsWheelZoom",jsWheelZoom); ExternalInterface.call("addMouseWheelListener"); private function jsWheelZoom(o:Object):void { var e:MouseEvent = new MouseEvent(MouseEvent.MOUSE_WHEEL,true); e.delta = -(o.delta); onWheelZoom(e); } private function onWheelZoom(e:MouseEvent):void { if(e.delta>2) { this.camera.verticalScrollPosition += 1; if(this.camera.verticalScrollPosition > this.camera.maxVerticalScrollPosition) { this.camera.verticalScrollPosition = this.camera.maxVerticalScrollPosition } } if(e.delta<-2) { this.camera.verticalScrollPosition -= 1; if(this.camera.verticalScrollPosition < 0) { this.camera.verticalScrollPosition = 0; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |