我真的很習慣使用動作腳本,並且可以使用一個很好的解釋如何做到這一點,以及它如何工作。AS3如何檢測舞臺上沒有目標的startTouchDrag?
我想在Android的AS3中創建一個舞臺事件。
當用戶觸摸舞臺而不是特別對象時,我需要檢測它們是否在拖動以及手指拖動到的位置。
我已經開始喜歡這個來檢測他們是否觸及階段:
stage.addEventListener(TouchEvent.TOUCH_BEGIN, stageTouchBegin);
var stageTouchDragBounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
function stageTouchBegin(event:TouchEvent):void
{
event.target.startTouchDrag(event.touchPointID, false, stageTouchDragBounds:Rectangle);
trace(event.stageX);
trace(event.stageY);
}
這條線路是從哪裏獲得,我假定這是因爲目標通常會被引用的錯誤電影符號等等,但在這種情況下,這不是因爲它的舞臺。我試着用舞臺代替目標,但它沒有工作:
event.target.startTouchDrag(event.touchPointID, false, stageTouchDragBounds:Rectangle);
以下是錯誤:1061:通過靜態類型flash.events:TouchEvent引用調用可能未定義的方法startTouchDrag。
從那裏,我的計劃是繼續使用這樣的事情,開始錄製他們在那裏爲:
var curPosX; var curPosY;
function stageTouchMoveHandler(event:TouchEvent):void
{
trace(event.stageX);
this.curPosX = event.stageX;
trace(event.stageY);
this.curPosY = event.stageY;
}
然後處理結束這樣:
function stageTouchEndHandler(event:TouchEvent):void
{
event.target.stopTouchDrag(event.touchPointID);
}
任何有關如何做到這一點或解釋目標的見解/建議,es特別的例子代碼,將不勝感激。感謝您的時間!
也許你不清楚'startTouchDrag()'方法應該做什麼。它的意思是實際拖動一個對象,就像在拖放操作中一樣。舞臺不是你可以在屏幕上拖動的東西。您只能在正在或擴展'Sprite'類的對象上使用'startTouchDrag()'方法(其階段不是)。我不擅長觸摸事件,否則我會提供更多建議。但是絕對不可以在舞臺上使用'startTouchDrag()'試試看[這裏](http://help.adobe.com/en_US/as3/dev/WS1ca064e08d7aa93023c59dfc1257b16a3d6-7ffe.html) –