2

メイン キャンバスの領域の約 50% のみをカバーするアイテムを内部に持つ Flex アプリケーションに Canvas があります。

rollOver内部のアイテムで覆われている領域だけでなく、領域全体のイベントにキャンバスが応答するようにします。

これを達成するために、次の属性を設定しています。

<mx:Canvas backgroundColor="white"
backgroundAlpha=".01"
rollOver="rollOver(event)">...

これにより、キャンバス全体が rollOver イベントに応答します。それはうまく機能します-私はそれに満足していません.それを達成するためのより良い方法があるに違いないと考えています.

マウス イベントが UIComponent の領域全体に作用するように強制する方法はありますか?

4

3 に答える 3

6

任意のアルファ値 0.01 を使用する必要はありませんが、backgroundAlpha を単純な 0 に設定できます。

私は日常的に複雑な多層 UI にキャンバスを使用し、css を介してデフォルトのキャンバス スタイルを設定し、backgroundAlpha を 0 に設定し、backgroundColor を #ffffff に設定します。次に、キャンバスを実際に表示する必要がある場合は、個々の backgroundAlpha および backgroundColor プロパティを調整します。 .

グラフィック オブジェクトのアルファを 0 に設定して、イベントに応答するようにしても問題はありませんが、完全に「オフ」にするわけではありません。私たち AS コーダーは常にそうしています!

于 2008-11-16T00:09:36.120 に答える
0

画像の透明部分を無視するのはどうですか? 私の場合、透明部分ではなく、画像の可視部分がロールオーバーされた場合にのみロールオーバー効果が発生するようにします。これは可能ですか?

于 2008-12-26T16:12:38.903 に答える
-2

あなたはこれを行うことができます:



import flash.event.MouseEvent;
...
canvas.addEventListener(MouseEvent.ROLL_OVER,function(event:MouseEvent):void {
    ...
});

ここで、「canvas」は mxml 内のキャンバスの ID です。

于 2008-11-15T01:32:45.830 に答える