2011-09-23 3 views
5

AS3でクリックイベントをシミュレートする方法はありますか?私はこれを試しています:AS3でのクリックイベントをシミュレート

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false)); 

クリックイベントはそれをトリガーしません。

+0

クリックをシミュレートしようとしている要素は何ですか? – stormbreaker

答えて

20

あなたがMouseEvent.CLICKのために聞いている場合は、MouseEvent.CLICKを派遣します。問題のその後MOUSE_UPイベントに

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, true, false)); 

ハンドラます:

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false)); 

続く:あなたは今、あなたが発送には最初に必要なクリックイベントをシミュレートするために

element.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
+0

私は不思議です、フラッシュのディスパッチハンドラがMOUSE_DOWNイベントの発生を予期していますか? – eLouai

+0

@eLouaiあなたが 'MOUSE_DOWN'イベントを待ち受ける場合、Flashは' CLICK'イベントを処理しません。逆も同様です。 'MOUSE_DOWN'イベントはマウスをクリックすると起動し、' MOUSE_UP'はマウスを離したときに起動します。 'CLICK'イベントは' MOUSE_DOWN'に続く 'MOUSE_UP'イベントに相当します。しかし、MOUSE_DOWNとMOUSE_UPを別々にディスパッチすると、CLICKイベントは発生しません。 –

+0

アドビのドキュメントによれば、明示されているように... "クリックイベントが発生するには、常にこの一連のイベントmouseDownイベントとmouseUpイベントの間には、任意の数の他のマウスイベントがいつでも発生する可能性がありますが、clickイベントまだ発生します。残念ながら私はそれに影響を与えることができないように見えるので、システムはそれが反応する別のイベントストリームでリッスンしているか、バグがあります。 – eLouai

3

MouseEvent.CLICKイベントを送出する必要があります。

element.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false)); 
0

MouseEvent.MOUSE_DOWNを派遣していますクリックイベント(マウスが要素の上にある場合は、mouse_xとmouse_y変数を設定する必要があります)

関連する問題