วันอาทิตย์ที่ 1 พฤษภาคม พ.ศ. 2554

คาบที่ 8 Timeline script

สคริปที่ใช้ควบคุม timeline ที่ใช้มาก ก็มีดังนี้

stop();
play();
gotoAndStop();
gotoAndPlay();

*** โปรดระวังเรื่องตัวพิมพ์ใหญ่พิมพ์เล็กให้ดี เพราะสำหรับโปรแกรมแฟลชนั้นมีความสำคัญมาก ***

สคริปหรือคำสั่งพวกนี้ เป็นคำสั่งสำเร็จรูป (บางคนเรียก keyword) ซึ่งจะใช้ในการควบคุมไทม์ไลน์ เพราะปรกติ เมื่อเรากด C+E(งงอะไร Ctrl+Enter ไง บทก่อนก็บอกแล้วนี่) โปรแกรมจะเริ่มแสดงภาพจากเฟรมแรกด้านซ้าย ไล่ไปทางขวาเรื่อยๆ ด้วยความเร็วเท่ากับ 12 frame ต่อ วินาที ซึ่งค่านี้สามารถปรับได้

ดังนั้น ถ้าเกิด เราใส่ปุ่มเอะไรสักปุ่ม(ซิมโบลหรือวัตถุอะไรก็ได้ ทีมีชนิดเป็นปุ่ม) ข้าไปที่ stage ไว้ในเฟรมแรก เมื่อ C+E คุณจะยังไม่ทันได้เห็นปุ่มหรอก โปรแกรมก็จะแสดงเฟรมต่อไปแล้ว ทำให้ปุ่มของเราหายไป จนทำให้เราเกิดสงสัยว่าปุ่มที่อุตส่าห์ใส่มันหายไปไหนล่ะก็ ปัญหาเหล่านี้จะหมดไปถ้าเราใส่สคริป

stop();

ไว้ในเฟรมที่ 1 โดยกดไปที่เฟรมแรก ให้มันขึ้นสีทึบๆ แล้วกลับไปกดที่แถบ action ที่ด้านล่าง แล้วจึงใส่สคริปลงไปในช่องว่างๆ เมื่อโปรแกรมแสดงผล (C+E) มาเจอสคริปนี้ มันจะหยุดรอ และไม่ทำการแสดงผลในเฟรมต่อไป ทำให้เราค้างอยู่ที่เฟรม 1 และทำให้เรามีเวลาตัดสินใจว่า เราจะกดปุ่มที่เราใส่ไว้ดีไหม

คำว่า stop นั้น เป็นภาษาอังกฤษแปลว่าหยุด สังเกตเห็นว่า หลัง stop เป็นเครื่องหมาย () แสดงว่า stop ไม่ใช่ตัวแปร แต่เป็นคำสั่ง ดังนั้น ถ้าเราไม่กำหนดตัวแปร คำสั่งนี้ก็จะส่งผลต่อ stage แทน แต่ถ้าสมมติเรามี มูฟวี่คลิ๊ปอีกตัวบน stage ชื่อว่า pick ซึ่งเป็นรูปวงกลมที่กำลังหมุน

ดังนั้น เมื่อเราสั่ง stop(); หน้าจอเราจะหยุดที่เฟรมที่เราใส่ stop(); แต่เจ้ามูฟวี่คลิ๊ปชื่อ pick ก็จะยังหมุนไปเรื่อยๆ แต่ถ้าเราใส่

stop();
pick.stop();

ทั้ง stage และ มูฟวี่คลิ๊ป pick ก็จะหยุดทั้งคู่

มาถึงนี่แล้ว ถ้ายังงงว่ามูฟวี่คลิ๊ปในโปรแกรมแฟลชคืออะไร ก็ขอบอกว่า มูฟวี่คลิ๊ปก็คือการเรียกรวมของภาพเคลื่อนไหว และภาพที่ไม่เคลื่อนไหวแต่อาจเคลื่อนไหวได้ถ้าเราสั่งมันนั่นเองนะครับ

ทีนี้มาต่อกันที่

play();

คำว่า play แปลไทยก็คือ เล่น แสดง มันมีหน้าที่ตรงข้ามกับ stop เมื่อคุณสั่งหยุดได้ เราก็สั่งให้ไปต่อได้ แต่ปรกติ เราจะไม่ค่อยได้ใช้มัน เพราะถ้าเราไม่ stop มันก็ play อยู่แล้ว

สรุป
1. ถ้าต้องการให้โปรแกรมหยุดรอที่เฟรมใด ให้กดที่เฟรมนั้น แล้วใส่สคริป stop(); ไว้ที่แถบaction ถ้าหาไม่เจอก็ f9
2. ถ้าเกิดมีโอกาศที่ต้องการให้มันเล่นต่อในเฟรมที่หยุดไว้ ให้ใส่คำสั่งว่า play(); ในเฟรมที่หยุด

ตามมาด้วย

gotoAndPlay();
gotoAndStop();

มันก็คือรูปแบบของ play และ stop นั่นเอง แต่มีเพิ่มตรง gotoAnd-
คำว่า gotoAnd หมายถึง ไปที่.... และ แปลตรงตัวคือ ต้องไปที่ไหนสักที่ และทำอะไรสักอย่าง แต่เพราะมันถูกจัดอยู่ในสคริปหมวด timeline สถานที่ที่มันจะไปก็มีแต่เฟรมเท่านั้น เหมือนคุ้นๆว่าเคยบอกไปแล้วในคาบก่อนๆ แต่เอาเถอะ ว่าใหม่ก็แล้วกัน

gotoAndPlay();

ดังนั้นความหมายคือ ไปที่เฟรมใดเฟรมหนึ่ง แล้วก็เล่นต่อไป ส่วนเราอยากให้ไปเฟรมไหนก็กำหนดตัวเลขไว้ในเครื่องหมายวงเล็บ เวลาโปรแกรมประมวลผล(C+E) แล้วแสดงภาพในเฟรมไล่มาเรื่อยๆ มาเจอเฟรมที่ใส่สคริปนี้ไว้ มันก็จะทำตามที่สคริปสั่ง

สมมติคุณสร้างเฟรมไว้ 10 เฟรม แล้วในเฟรมที่ 5 คุณใส่สคริปว่า

gotoAndPlay(1);

เมื่อโปรแกรมทำงาน มันก็จะทำงานจากเฟรมที่ 1- 5 แล้วจะวนกลับไปต่อที่เฟรมที่ 1 ใหม่ แล้วก็แสดงภาพไปถึงเฟรมที่ 5 แล้วก็วนกลับไปเฟรมที่ 1 ใหม่ ไม่รู้จบ

ส่วน gotoAndStop(); ก็เหมือนกับตัวบน แต่มันจะไม่ประมวลผลต่อ คือ พอไปเฟรมที่ระบุ มันก็จะหยุดรอที่เฟรมนั้นเลย

คราวนี้เอาแค่พอหอมปากหอมคอก่อนนะครับ เจอกันงวดหน้า กับ ครูปิ้ก ที่นี่ ที่เดียวครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น