Openlaszlo bringtoFront工作不正常

时间:2012-11-29 10:54:49

标签: openlaszlo lzx

我正在和我一起三角形,我正在尝试旋转。图像旋转正常我没有任何问题。但我有一个问题,三角形应该只有当我点击我可以旋转的实际点时才能获得焦点。但这不会发生。我附上了解释问题的图像。我在swf运行时没有遇到任何问题。但是在DHTML运行时我遇到了这个问题。这对我正在使用的图像有什么影响吗?

我正在使用Openlaszlo5.0,在Windows Firefox 16.0中测试,三角形的测试图像是PNG。

enter image description here

1 个答案:

答案 0 :(得分:1)

我假设你的描述中你必须使用一个具有内置的bringToFront()调用的类,当你单击它时,例如basewindow。对于这样的类,您可以覆盖bringToFront()方法并检查鼠标是否在您希望响应的区域内,然后决定是否调用super.bringToFront()。为简单起见,我的示例只是检查点击是否在广场的右半部分,但您可以插入公式以确定它是否在您的三角形点之内而不是在您的应用程序中:

<canvas width="1000" height="584" debug="true">

    <basewindow id="v1" width="100" height="100" x="25" y="25" bgcolor="0xff0000" clickable="true">

        <method name="bringToFront">
        <![CDATA[

            var x = this.getMouse('x');
            var y = this.getMouse('x'); 

            Debug.debug('x='+x);
            Debug.debug('y='+y);    

            // Ensure mouse is within right half:

            if (x>(this.width)/2)
              super.bringToFront();

        ]]>
        </method>

    </basewindow>  

    <basewindow id="v" width="100" height="100" x="50" y="50" bgcolor="0xcccccc" clickable="true">

        <method name="bringToFront">
        <![CDATA[

            var x = this.getMouse('x');
            var y = this.getMouse('x'); 

            Debug.debug('x='+x);
            Debug.debug('y='+y);    

            // Ensure mouse is within right half:

            if (x>(this.width)/2)
              super.bringToFront();

        ]]>
        </method>

    </basewindow>

</canvas>

我在OL 4.9.0 SWF10中进行了测试,但它确实有效。