Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Flex鼠标事件在警报状态下不工作_Javascript_Apache Flex - Fatal编程技术网

Javascript Flex鼠标事件在警报状态下不工作

Javascript Flex鼠标事件在警报状态下不工作,javascript,apache-flex,Javascript,Apache Flex,我们有三个弹出窗口 Poppup1左侧显示电子邮件列表,右侧显示电子邮件内容。 一个带有数据网格的分隔框,显示电子邮件列表和显示电子邮件内容的文本区域 “重新发送”、“取消”按钮位于VBOX中此弹出窗口的底部 当用户单击Popup1上的“重新发送”按钮时,popup2将显示电子邮件内容、发件人和收件人等,并在底部显示“发送”按钮 当用户单击popup2上的“发送”时,将显示一条提示,询问确认,并显示“是”或“否”选项。现在的问题是,鼠标事件在此警报上不起作用,但键盘事件起作用 以下是导致问题的P

我们有三个弹出窗口

  • Poppup1左侧显示电子邮件列表,右侧显示电子邮件内容。 一个带有数据网格的分隔框,显示电子邮件列表和显示电子邮件内容的文本区域 “重新发送”、“取消”按钮位于VBOX中此弹出窗口的底部
  • 当用户单击Popup1上的“重新发送”按钮时,popup2将显示电子邮件内容、发件人和收件人等,并在底部显示“发送”按钮
  • 当用户单击popup2上的“发送”时,将显示一条提示,询问确认,并显示“是”或“否”选项。现在的问题是,鼠标事件在此警报上不起作用,但键盘事件起作用
  • 以下是导致问题的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,但仍然不起作用:(


    最后我发现了这个问题,是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; 
    }