1

私は回転しようとしている三角形を持っています。画像は適切に回転しており、問題はありません。しかし、回転できる実際のポイントをクリックしたときにのみ、三角形にフォーカスを当てる必要があるという問題が1つあります。しかし、これは起こっていません。問題を説明する画像を添付しました。swfランタイムではこれに問題はありませんでした。しかし、DHTML ランタイムでは、この問題に直面しています。これは私が使用している画像に何かありますか?

Windows Firefox 16.0 でテストしている Openlaszlo5.0 を使用しています。三角形のテスト画像は PNG です。

ここに画像の説明を入力

4

1 に答える 1

1

あなたの説明から、たとえばbasewindowのように、クリックしたときにbringToFront()呼び出しが組み込まれたクラスを使用している必要があると想定しています。このようなクラスを使用すると、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 でテストしたところ、動作しました。

于 2012-11-29T18:18:27.853 に答える