加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex <param name="wmode" value=&#

发布时间:2020-12-15 04:05:29 所属栏目:百科 来源:网络整理
导读: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代码

[javascript] view plain copy print ?
  1. function addMouseWheelListener(){?
  2. ??? var flash = thisMovie("videoControl");?
  3. ??? var ua = navigator.userAgent;?
  4. ??? if(ua.indexOf("Firefox") > -1){?
  5. ?????????? flash.addEventListener('DOMMouseScroll',onWheelZoom,false);??
  6. ??? }else if(ua.indexOf("MSIE") == -1){?
  7. ??????? flash.addEventListener('mousewheel',false);??
  8. ??? }else{?
  9. ??????? flash.attachEvent('onmousewheel',onWheelZoom);??
  10. ??? }?
  11. }?
  12. ?
  13. function onWheelZoom(event){???
  14. ??? var app = window.document["videoControl"];???
  15. ??? if (app) {???
  16. ??????? var o= {delta: event.wheelDelta}?
  17. ??????? thisMovie("videoControl").jsWheelZoom(o);???
  18. ??? }???
  19. }???
function addMouseWheelListener(){
	var flash = thisMovie("videoControl");
	var ua = navigator.userAgent;
	if(ua.indexOf("Firefox") > -1){
	       flash.addEventListener('DOMMouseScroll',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 监听方法和回调方法 ,方法如下


[java] view plain copy print ?
  1. ExternalInterface.addCallback("jsWheelZoom",jsWheelZoom);?
ExternalInterface.addCallback("jsWheelZoom",jsWheelZoom);
[java] view plain copy print ?
  1. ExternalInterface.call("addMouseWheelListener");?
ExternalInterface.call("addMouseWheelListener");
 
[java] view plain copy print ?
  1. private function jsWheelZoom(o:Object):void?
  2. {?
  3. ??? var e:MouseEvent = new MouseEvent(MouseEvent.MOUSE_WHEEL,true);???
  4. ??? e.delta = -(o.delta);?
  5. ??? onWheelZoom(e);??
  6. }?
  7. private function onWheelZoom(e:MouseEvent):void?
  8. {?
  9. ??? if(e.delta>2)???
  10. ??? {???
  11. ??????? this.camera.verticalScrollPosition += 1;?
  12. ??????? if(this.camera.verticalScrollPosition > this.camera.maxVerticalScrollPosition)?
  13. ??????? {?
  14. ??????????? this.camera.verticalScrollPosition = this.camera.maxVerticalScrollPosition?
  15. ??????? }?
  16. ??? }???
  17. ??? if(e.delta<-2)???
  18. ??? {???
  19. ??????? this.camera.verticalScrollPosition -= 1;??????
  20. ??????? if(this.camera.verticalScrollPosition < 0)?
  21. ??????? {?
  22. ??????????? this.camera.verticalScrollPosition = 0;?
  23. ??????? }??????????????
  24. ??? }???
  25. }??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读