2012-12-24 48 views
0

我有一个矩形mc。当用户在mc上慢慢地挥动手指时,需要增加一个值,如果向左移动,则会减少。 1到100是限制。我怎么做?我不想要一个可见的滑块。不管手指在手指的哪个方向,手指在哪个方向移动都不重要。在mc的X轴上拖动手指,更改值 - AS3

编辑:我目前正在调查touchEvent,并正在研究网络的解决方案。

+3

[你有什么尝试?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Foggzie

+0

我猜这是与myMC.addEventListener(MouseEvent.MOUSE_MOVE,myFunction );但如何在x轴上做到这一点。 – akhunaton

回答

1

你会想要跟踪是否发生刷卡,如果是,它是从哪里开始的。

var dragging:Boolean = false; 
var startX:Number = 0.0; 

然后,您将使用简单的事件侦听器来跟踪这个布尔值。

mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); 
mc.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); 
function mouseDown(event:MouseEvent):void 
{ 
    dragging = true; 
    startX = event.localX; 
} 
function mouseReleased(event:MouseEvent):void 
{ 
    dragging = false; 
} 

那么你MOUSE_MOVE触摸事件可以处理所有逻辑:

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove); // Notice this event is on stage, not mc. 
function mouseMove(event.MouseEvent):void 
{ 
    value += event.localX - startX; 
    if (value < 0) value = 0; 
    if (value > 100) value = 100; 
} 

节日快乐!

+0

谢谢你的帮助。 var startX:Number = 0.0f;引发语法错误。在f之前预期分号。我也得到一个未定义的属性错误,我想我可以定义和使用myValue来代替“值”吗?祝你节日快乐! – akhunaton

+0

是的。 'f'是一个拼写错误,你应该用你用来存储正在改变的数字的值来代替'value'。 – Foggzie