
สั่งเคลื่อน symbol ด้วยการกดปุ่ม keyboard
บทความนี้จะกล่าวถึงวิธีการทำให้วัตถุหรือ symbol ในโปรแกรม Flash เคลื่อนที่ไปมาด้วยการกดปุ่ม เราจะดัดแปลงจากตัวอย่างที่แล้ว โดยให้เรากดปุ่มลูกศร ซ้ายขวาแล้ววงกลมสีแดงจะเคลื่อนที่ตามไปมาง่ายๆอย่างนี้
ในแท็บ Timeline ของโปรแกรม Flash คลิกขวาที่ Frame 1 จากนั้นเลือก Actions จะเกิดหน้าต่างสำหรับในโค้ด ActionScript 3.0 ขึ้นมา เหมือนกับที่ได้อธิบายไว้ในตัวอย่างที่แล้ว
จากนั้นเปลี่ยนโค้ดใหม่ด้วยการใส่โค้ดนี้ลงไปแทนที่โค้ดเดิม
import flash.events.Event;
import flash.events.KeyboardEvent;
var direct:int = 1;
var position:int = circle.x;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onMoveCircle);
function onMoveCircle(event:KeyboardEvent):void
{
if(event.keyCode == 37)
{
direct = -1;
}
if(event.keyCode == 39)
{
direct = 1;
}
position = position + (10 * direct);
if(position - circle.width / 2 <= 0)
{
position = 0 + circle.width / 2;
}
else if(position + circle.width / 2 >= 550)
{
position = 550 - circle.width / 2;
}
circle.x = position;
}
จากโค้ดเราให้ stage (พื้นที่แสดงผลของ Flash เป็นสี่เหลี่ยมสีขาวๆ)ผูกอีเวนต์ KeyBoardEvent.KEY_DOWN กับฟังก์ชั่น onMoveCircle เพื่อคอยฟังการกดคีย์บอร์ดบน stage หากมีการกดเกิดขึ้นก็ให้ทำในฟังก์ชั่น onMoveCircle แนวคิดก็คือ ถ้ากดปุ่มลูกศรซ้ายก็ให้ทิศเป็นลบ ถ้ากดปุ่มลูกศรขวาก็ให้ทิศเป็นบวก ตามแนวแกน x ของหน้าจอ stage
ส่วน position คือทำแหน่งใดๆที่วงกลมกำลังเคลื่อนที่ไปบน stage เคลื่อนที่ไปครั้งละ 10 พิกเซล ระบุทิศทางการเคลื่อนที่ด้วยการคูณกับ direct
ถ้าวงกลมสีแดงเคลื่อนที่ไปทางด้านซ้ายจนเลยขอบด้านซ้ายของ stage แล้ว ก็ให้วงกลมหยุดอยู่ที่ขอบด้านซ้าย
ถ้าวงกลมสีแดงเคลื่อนที่ไปทางด้ายขวาจนเลยขอบด้านขวาของ stage แล้วก็ให้วงกลมสีแดงหยุดอยู่ที่ขอบด้านขวา
เราสามารถดูการเปลี่ยนค่าต่างๆเพื่อความเข้าใจ เช่น อยากรู้ว่าค่า position จะเปลี่ยนไปยังไงเราแค่ใช้ trace(position); ลงในฟังก์ชั่น onMoveCircle ดู
ส่วน keycode เป็นค่าตัวเลขของ keyboard เอาไว้สำหรับตรวจสอบว่าเราได้กดปุ่มใดบ้าง
เราสามารถเปลี่ยนเป็นปุ่มอื่นๆได้อีก