2012-12-24 56 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