Javascript Flex鼠标事件在警报状态下不工作
我们有三个弹出窗口Javascript Flex鼠标事件在警报状态下不工作,javascript,apache-flex,Javascript,Apache Flex,我们有三个弹出窗口 Poppup1左侧显示电子邮件列表,右侧显示电子邮件内容。 一个带有数据网格的分隔框,显示电子邮件列表和显示电子邮件内容的文本区域 “重新发送”、“取消”按钮位于VBOX中此弹出窗口的底部 当用户单击Popup1上的“重新发送”按钮时,popup2将显示电子邮件内容、发件人和收件人等,并在底部显示“发送”按钮 当用户单击popup2上的“发送”时,将显示一条提示,询问确认,并显示“是”或“否”选项。现在的问题是,鼠标事件在此警报上不起作用,但键盘事件起作用 以下是导致问题的P
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,但仍然不起作用:(
最后我发现了这个问题,是html div重叠的flex文本区域阻止了警报窗口上的鼠标交互 我们有一个加载swf文件的JSP页面,这个JSP包含一个div。 在Flex屏幕上,对于某些电子邮件类型,电子邮件内容显示在Flex文本区域,对于其他类型,Flex文本区域隐藏并将内容设置为div(使用div.innerHTML) 当Alert在html div顶部打开时,鼠标事件在Alert上不起作用。作为一种解决方法,我将Alert向左移动,这样它就不会出现在html文本区域的顶部,从而解决了这个问题
function moveHtml(top, left, width, height)
{
htmlTextArea.style.top = 200;
htmlTextArea.style.left = 300;
htmlTextArea.style.width = 100;
htmlTextArea.style.height = 200;
}