Flex 鼠标事件不适用于警报
Flex Mouse Event not working on Alert
我们有三个弹出窗口
- Poppup1 左侧显示电子邮件列表,右侧显示电子邮件内容。
带有显示电子邮件列表的数据网格和显示电子邮件内容的文本区域的分隔框
重新发送、取消按钮位于 VBOX
内此弹出窗口的底部
- 当用户点击弹出窗口 1 上的重新发送按钮时,弹出窗口 2 会显示电子邮件内容、发件人和收件人等以及底部的发送按钮
- 当用户在弹出窗口 2 上单击“发送”时,将显示一条询问确认选项“是”或“否”的警报。现在的问题是,鼠标事件在此警报上不起作用,但键盘事件有效。
以下是 Popup1 上导致问题的两种方法。在这些中,如果 ExternalInterface.call 被注释,则鼠标事件对警报起作用。有什么解决办法吗?
private function onCreationComplete( event:Event ):void
{
positionHandler(event);
changeHandler(event);
this.addEventListener(ResizeEvent.RESIZE, positionHandler);
this.addEventListener(MoveEvent.MOVE, positionHandler);
this.parent.addEventListener(ResizeEvent.RESIZE, positionHandler);
txtMsgDesc.addEventListener(MoveEvent.MOVE, positionHandler);
}
private function positionHandler(event:Event):void
{
var position:Point = new Point(txtMsgDesc.x + this.borderMetrics.left + 10, txtMsgDesc.y + this.borderMetrics.top);
position = this.localToGlobal(position);
position = Application.application.globalToLocal(position);
var width:int = txtMsgDesc.width;
var height:int = txtMsgDesc.height;
ExternalInterface.call("moveHtml", position.y, position.x, width-5, height-5);
}
并且外部接口调用调用javascription设置宽度,高度等。无法计算,这个功能有问题。
function moveHtml(top, left, width, height)
{
htmlTextArea.style.top = parseFloat(top);
htmlTextArea.style.left = parseFloat (left);
htmlTextArea.style.width = parseFloat (width);
htmlTextArea.style.height = parseFloat (height);
}
更新
在 javascript 函数中,如果我对值进行硬编码,它的工作方式如下
我怀疑 parseFloat 有问题并尝试检查值是否不是 isNaN 但仍然不起作用:(
function moveHtml(top, left, width, height)
{
htmlTextArea.style.top = 200;
htmlTextArea.style.left = 300;
htmlTextArea.style.width = 100;
htmlTextArea.style.height = 200;
}
我终于弄明白了这个问题。 html div 重叠的弹性文本区域在警报 window 时阻止了鼠标交互。
我们有一个加载 swf 文件的 JSP 页面,这个 JSP 包含一个 div。
在 Flex 屏幕上,对于某些电子邮件类型,电子邮件内容显示在 flex 文本区域,而对于其他类型,flex 文本区域被隐藏并将内容设置为 div(使用 div.innerHTML)。
当警报在 html div 之上打开时,鼠标事件对警报不起作用。作为一种解决方法,我将警报移到了左侧,这样它就不会出现在解决问题的 html 文本区域的顶部。
我们有三个弹出窗口
- Poppup1 左侧显示电子邮件列表,右侧显示电子邮件内容。 带有显示电子邮件列表的数据网格和显示电子邮件内容的文本区域的分隔框 重新发送、取消按钮位于 VBOX 内此弹出窗口的底部
- 当用户点击弹出窗口 1 上的重新发送按钮时,弹出窗口 2 会显示电子邮件内容、发件人和收件人等以及底部的发送按钮
- 当用户在弹出窗口 2 上单击“发送”时,将显示一条询问确认选项“是”或“否”的警报。现在的问题是,鼠标事件在此警报上不起作用,但键盘事件有效。
以下是 Popup1 上导致问题的两种方法。在这些中,如果 ExternalInterface.call 被注释,则鼠标事件对警报起作用。有什么解决办法吗?
private function onCreationComplete( event:Event ):void
{
positionHandler(event);
changeHandler(event);
this.addEventListener(ResizeEvent.RESIZE, positionHandler);
this.addEventListener(MoveEvent.MOVE, positionHandler);
this.parent.addEventListener(ResizeEvent.RESIZE, positionHandler);
txtMsgDesc.addEventListener(MoveEvent.MOVE, positionHandler);
}
private function positionHandler(event:Event):void
{
var position:Point = new Point(txtMsgDesc.x + this.borderMetrics.left + 10, txtMsgDesc.y + this.borderMetrics.top);
position = this.localToGlobal(position);
position = Application.application.globalToLocal(position);
var width:int = txtMsgDesc.width;
var height:int = txtMsgDesc.height;
ExternalInterface.call("moveHtml", position.y, position.x, width-5, height-5);
}
并且外部接口调用调用javascription设置宽度,高度等。无法计算,这个功能有问题。
function moveHtml(top, left, width, height)
{
htmlTextArea.style.top = parseFloat(top);
htmlTextArea.style.left = parseFloat (left);
htmlTextArea.style.width = parseFloat (width);
htmlTextArea.style.height = parseFloat (height);
}
更新
在 javascript 函数中,如果我对值进行硬编码,它的工作方式如下 我怀疑 parseFloat 有问题并尝试检查值是否不是 isNaN 但仍然不起作用:(
function moveHtml(top, left, width, height)
{
htmlTextArea.style.top = 200;
htmlTextArea.style.left = 300;
htmlTextArea.style.width = 100;
htmlTextArea.style.height = 200;
}
我终于弄明白了这个问题。 html div 重叠的弹性文本区域在警报 window 时阻止了鼠标交互。
我们有一个加载 swf 文件的 JSP 页面,这个 JSP 包含一个 div。 在 Flex 屏幕上,对于某些电子邮件类型,电子邮件内容显示在 flex 文本区域,而对于其他类型,flex 文本区域被隐藏并将内容设置为 div(使用 div.innerHTML)。
当警报在 html div 之上打开时,鼠标事件对警报不起作用。作为一种解决方法,我将警报移到了左侧,这样它就不会出现在解决问题的 html 文本区域的顶部。