การหาความเร็วในการเลื่อน mouse ใน Action Script 3.0 by

29
Apr
0

หลายๆคนที่ใช้ 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 ได้ ก็จะสามารถนำไปใช้ได้หลายแบบ ไม่ว่าจะเป็นการจับวัตถุเขวี้ยง หรือการเลื่อนวัตถุไปชนในความเร็วที่ต่างกันได้ครับ

อ้างอิง

http://www.quasiuseful.com/

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post