การหาความเร็วในการเลื่อน mouse ใน Action Script 3.0 by nandanai
29
Apr0
Apr0
หลายๆคนที่ใช้ Action Script 3.0 ในการสร้าง flash อาจสงสัยถึงวิธีการหาค่าความเร็วในการเลื่อน mouse ของผู้ใช้ขณะนั้น
เพราะมีแต่ mouseX และ mouseY ที่เป็นตัวบอกตำแหน่งของ mouse เท่านั้น แต่เราสามารถใช้ตำแหน่งนั้นมาหาความเร็วได้ ดัง class ตัวอย่างนี้
public class MouseSpeed extends Sprite { private var newY:Number = 0; private var oldY:Number = 0; public var ySpeed:Number; private var newX:Number = 0; private var oldX:Number = 0; public var xSpeed:Number; public function MouseSpeed() { this.addEventListener(Event.ENTER_FRAME, calculateMouseSpeed); } private function calculateMouseSpeed(e:Event) { newY = mouseY; ySpeed = newY - oldY; oldY = newY; newX = mouseX; xSpeed = newX - oldX; oldX = newX; } public function getYSpeed():Number { return ySpeed; } public function getXSpeed():Number { return xSpeed; } }
โดยหลักการก็คือ การหาตำแหน่งของ mouse ใน frame ก่อนหน้านั้นกับตำแหน่งในเฟรมปัจจุบัน เพื่อหาระยะทางที่ mouse เคลื่อนที่ใน 1 frame นั่นเอง
ผู้อ่านสามารถนำ class นี้ไปใช้ได้ทันที โดย function getXSpeed จะ return ค่าความเร็วของ mouse ในแกน X และ getYSpeed จะเป็นของแกน Y ซึ่งจะเป็นชนิด Number
สุดท้าย เมื่อหาความเร็วของ mouse ได้ ก็จะสามารถนำไปใช้ได้หลายแบบ ไม่ว่าจะเป็นการจับวัตถุเขวี้ยง หรือการเลื่อนวัตถุไปชนในความเร็วที่ต่างกันได้ครับ
อ้างอิง
Enjoy this article?
Consider subscribing to our RSS feed!
ไม่มีความเห็น
ยังไม่มีความเห็น