Flex鼠标事件无法处理警报

时间:2015-09-22 11:01:00

标签: javascript flex

我们有三个弹出窗口

  1. Poppup1显示左侧的电子邮件列表,电子邮件内容显示在右侧。 一个分隔的框,其中数据网格显示电子邮件列表,文本区域显示电子邮件内容 重新发送,取消按钮位于VBOX
  2. 内的此弹出窗口的底部
  3. 当用户点击Popup1上的重新发送按钮时,会显示popup2,其中包含电子邮件内容,来自等等,以及底部的发送按钮
  4. 当用户点击popup2上的Send时,会显示一个询问确认选项YES或NO的警告。现在问题是,鼠标事件对此警报不起作用,但键盘事件有效。
  5. 以下是导致该问题的Popup1上的两种方法。在这些中,如果注释了ExternalInterface.call,则鼠标事件适用于Alert。任何想法如何解决这个问题?

    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; 
    }
    

1 个答案:

答案 0 :(得分:0)

最后我发现了这个问题。这是html div重叠弹性文本区域阻止警报窗口上的鼠标交互。

我们有一个加载swf文件的JSP页面,这个JSP包含一个div。 在Flex屏幕上,电子邮件内容显示在某些电子邮件类型的弹性文本区域,对于其他类型,隐藏了flex文本区域并将内容设置为div(使用div.innerHTML)。

当警报在html div上打开时,鼠标事件对警报不起作用。作为一种解决方法,我将警报移至左侧,以便它不会出现在修复问题的html文本区域之上。