2009-07-23 15 views
2

Spriteのドラッグアンドドロップをシミュレートするために、いくつかのactionscriptコードが必要です。そうすることが可能かどうか疑問に思っていましたか?もしそれがどうですか?プログラムでドラッグしてFlexでスプライトをドロップする方法は?

たとえば、次のコード行で実現できるSpriteのクリックをシミュレートするには: AIR Sprite Classについては

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

あなたは説明できますこれは何のため?あなたが間違っているように聞こえる。 – zinovii

+0

私はUIをテストするためのテストコードを書いていますので、インジケータ(画像)をインジケータバー上にドラッグする必要があります。 –

+0

私は、SpriteにはstartDrag()メソッドとstopDrag()メソッドがありますが、イベントは送出されないと思っています。少なくとも、SpriteのdragStartイベントとdragCompleteイベントを持っているといいでしょう。 – zinovii

答えて

3

はこのような何かを次のいずれか:あなたはstartDragメソッドに2つの引数を渡すことができ

mySprite.addEventListener("mouseDown", mouseDownHandler); 
stage.addEventListener("mouseUp", mouseUpHandler); 
protected function mouseDownHandler (e:MouseEvent):void{ 
    e.target.startDrag(); 
} 
protected function mouseDownHandler (e:MouseEvent):void{ 
    e.target.stopDrag(); 
} 

、最初は、第二には、境界点のためのRectangleオブジェクトで、中央にロックするブール値です。

そして、あなたが代わりにこのような何かを行うことができ、より制御動作のために:

mySprite.addEventListener("mouseDown", 
mouseDownHandler); 
stage.addEventListener("mouseUp", mouseUpHandler); 
protected function mouseDownHandler (e:MouseEvent):void{ 
    stage.addEventListener("mouseMove", 
mouseMoveHandler); 
} 
protected function mouseDownHandler (e:MouseEvent):void{ 
    stage.removeEventListener("mouseMove", 
mouseMoveHandler); 
} 
protected function mouseMovehandler(e:MouseEvent):void{ 
    mySprite.x=mouseX; 
    mySprite.y=mouseY; 
} 

(いくつかの小さな構文エラーか何かがあるかもしれないので、コードをテストしていない)

+0

これは5年後のことですが、2番目の 'mouseDownHandler'を' mouseUpHandler'に編集するのを忘れているかもしれません – Vanlalhriata

0

nativeDragStart、によってnativeDragOver、nativeDragEnter、によってnativeDragExit、nativeDragUpdateを持っています。したがって、これらのイベントをディスパッチできます。

Flexの場合、オブジェクトはUIComponentのインスタンスでなければなりません。

関連する問題