我需要一些動作代碼來模擬Sprite的拖放,我想知道是否可以這樣做?如果是這樣的話?如何以編程方式在Flex中拖放一個Sprite?
例如,模擬一個Sprite的點擊,我可以用下面的代碼行來實現。
sprite.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
我需要一些動作代碼來模擬Sprite的拖放,我想知道是否可以這樣做?如果是這樣的話?如何以編程方式在Flex中拖放一個Sprite?
例如,模擬一個Sprite的點擊,我可以用下面的代碼行來實現。
sprite.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
要麼做這樣的事情:
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();
}
您可以通過2個參數的方法的startDrag,首先是鎖定到中心一個布爾值,第二個是一個矩形對象的邊界點。
而對於更受控制的行爲,你可以做這樣的事情,而不是:
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;
}
(沒有測試代碼,所以可能會有一些小的語法錯誤或東西)
對於AIR Sprite Class有nativeDragStart,nativeDragOver,nativeDragEnter,nativeDragExit,nativeDragUpdate。所以你可以派遣這些事件。
對於Flex,對象必須是UIComponent的實例。
你能解釋一下這個是來做什麼的?這聽起來像你做錯了。 – zinovii 2009-07-23 03:55:03
我正在編寫一些測試代碼來測試UI,我需要將指標(一個圖像)拖到指示條上。 – 2009-07-23 04:21:52