Apache flex Flex HTMLLoader组件未为所有鼠标单击引发鼠标向下事件
我已经用Flash Builder 4构建了一个Air 2/Flex 4信息亭应用程序。目前,我正在实施一个触摸屏浏览器,使用户能够浏览公司培训视频。 为了提高触摸屏上网站的可用性,我在Doug McCune(更新为使用flex 4“Scroller”组件)的基础上添加了HTML组件,允许用户通过在屏幕上拖动手指来滚动网页。mouseDown事件用于开始滚动视口。 此外,该网页已修改为使用以下css禁用文本选择:Apache flex Flex HTMLLoader组件未为所有鼠标单击引发鼠标向下事件,apache-flex,actionscript-3,air,flex4,Apache Flex,Actionscript 3,Air,Flex4,我已经用Flash Builder 4构建了一个Air 2/Flex 4信息亭应用程序。目前,我正在实施一个触摸屏浏览器,使用户能够浏览公司培训视频。 为了提高触摸屏上网站的可用性,我在Doug McCune(更新为使用flex 4“Scroller”组件)的基础上添加了HTML组件,允许用户通过在屏幕上拖动手指来滚动网页。mouseDown事件用于开始滚动视口。 此外,该网页已修改为使用以下css禁用文本选择: html { -webkit-user-select: none;
html {
-webkit-user-select: none;
cursor: default;
}
我面临的问题是,HTMLLoader组件只有在单击网页上的链接/输入/按钮时才会触发鼠标下移,而不是在单击背景或任何文本时
此外,如果我删除自定义css,mouseDown事件在选中文本时不会触发,但在单击以前突出显示的文本时会触发
作为替代方案,我还尝试添加一个与HTMLLoader具有相同维度的组容器来检测mouseDown事件(以便组容器和HTMLLoader具有相同的可拖动父容器),并且能够捕获mouseDown事件并按预期滚动视口。但是,由于鼠标事件由组容器处理,我现在无法浏览网页
有人知道为什么HTMLLoader组件没有为所有鼠标点击引发mouseDown事件吗 我也面临同样的问题,解决这个问题的一种方法是在加载网页完成时编写javascript 我是这样做的:
<mx:HTML id="html" ... >
<mx:complete>
var document:Object = html.htmlLoader.window.document;
var body:Object = document.getElementsByTagName("body");
body[0].onmousedown = function(o:Object):void
{
trace("mouseDown");
...
}
</mx:complete>
</mx:HTML>
var document:Object=html.htmloader.window.document;
变量body:Object=document.getElementsByTagName(“body”);
正文[0]。onmousedown=函数(o:Object):void
{
跟踪(“鼠标向下”);
...
}
我也遇到了同样的问题,解决这个问题的方法是在加载网页完成时编写javascript
我是这样做的:
<mx:HTML id="html" ... >
<mx:complete>
var document:Object = html.htmlLoader.window.document;
var body:Object = document.getElementsByTagName("body");
body[0].onmousedown = function(o:Object):void
{
trace("mouseDown");
...
}
</mx:complete>
</mx:HTML>
var document:Object=html.htmloader.window.document;
变量body:Object=document.getElementsByTagName(“body”);
正文[0]。onmousedown=函数(o:Object):void
{
跟踪(“鼠标向下”);
...
}
解决此问题的另一种方法是为htmlLoader的父级添加鼠标按下事件侦听器。将useCapture参数设置为true
parent.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, true);
还有另一种解决问题的方法,只是为htmlLoader的父级添加鼠标按下事件侦听器。将useCapture参数设置为true
parent.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, true);
我只是打了自己一巴掌,真不敢相信我竟然没有想到这个——非常好的解决方案,谢谢!我只是打了自己一巴掌,真不敢相信我竟然没有想到这个——非常好的解决方案,谢谢!