我真的很习惯使用动作脚本,并且可以使用一个很好的解释如何做到这一点,以及它如何工作。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) –