有几种方法可以实现您正在寻找的东西,我建议您也检查一下Touch/Gesture 事件,另外,检查这个库Gestouch(非常强大且有据可查,并且有几个@987654324 @)
为了帮助您理解如何开始理解ActionScript 和这个有问题的逻辑,我写了这个简单的例子,仅用于教育目的(不使用触摸/手势事件或适当的命名代码约定等),您可以根据您能够从我在此答案中提到的示例和相关链接中提取的内容应用您自己的逻辑和需求。
*
// control for Y position when mouse down
var downY:Number = 0;
// control for Y position when mouse up
var upY:Number = 0;
// control for X position when mouse down
var downX:Number = 0;
// control for X position when mouse up
var upX:Number = 0;
// vertical or horizontal control (if true, we use the Y position, if false we use the X)
var verticalControl:Boolean = true;
// adding an event listeter to detect the mouse down state (you can apply the same for your own Object (sprite with image, or whatever you have in mind)
stage.addEventListener(MouseEvent.MOUSE_DOWN, downHandler, false, 0, true);
function downHandler(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, upHandler, false, 0, true);
// collecting current Y and X position (mouse down state)
downY = event.localY;
downX = event.localX;
}
function upHandler(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_UP, upHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, downHandler, false, 0, true);
// collecting current Y and X position (mouse up state)
upY = event.localY;
upX = event.localX;
// checking if should use Y or X position
(verticalControl) ? frameActionScope(upY, downY) : frameActionScope(upX, downX);
}
function frameActionScope(newValue:Number, oldValue:Number):void
{
// using your logic (When the old Y > new Y , go to prevFrame(), and when the new Y > old Y, go to nextFrame())
(newValue >= oldValue) ? nextFrameScope() : prevFrameScope();
}
function nextFrameScope():void
{
trace('next frame');
}
function prevFrameScope():void
{
trace('previous frame');
}
希望你能帮助到你。