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

คาบที่ 5 ชนิดของตัวแปรที่ใช้กันมากอีก 3 ตัว

ต่อเนื่องจากคาบที่แล้ว ชนิดของตัวแปรที่เหลืออยู่นั้นยากยิ่งแก่การทำความเข้าใจ จนผมตั้งฉายาให้ว่า 3 ทหารเสือกันเลยทีเดียว
เริ่มจากง่ายสุดใน 3 ตัวที่เหลือกัน

String หรือก็คือตัวหนังสือ เจ้าตัวนี้คือชนิดของตัวแปรที่ตรงตามชื่อและมักใช้งานผิดบ่อยที่สุด
ข้อต้องจำ การกำหนดค่าของตัวแปรชนิดนี้ ต้องอยู่ภายในเครื่องหมาย “ “ เสมอ (ข้อนี้แหละที่ลืมกันตลอด) ตัวอย่างเช่น

var pick:String = "ปิ๊กรูปหล่อ";
var pock:String = "ปิ้๊กหน้าตาดี";
trace(pick+" "+pock);

จากตัวอย่าง เมื่อกด Ctrl+Enter (ต่อจากนี้จะเรียกย่อๆว่า C+E) ค่าที่แสดงในช่อง output จะได้เป็น

ปิ๊กรูปหล่อ ปิ๊กหน้าตาดี

เพราะอะไร ในโปรแกรมแฟลช ตัวหนังสือนั้น + กันได้!! งงไหม +กันได้ แต่ลบ คูณ หาร ไม่ได้
ข้างบนผมกำหนดให้ตัวแปรปิ้กคือตัวอักษร มีค่าเท่ากับ ปิ๊กรูปหล่อ ส่วนป๊อกจะเป็น ปิ๊กหน้าตาดี เมื่อ trace สังเกตดีๆ
ผมให้ trace ค่า pick + “ “ + pock ไอ้ที่ใส่ไว้ในเครื่องหมายคำพูด ผมใส่ ช่องว่างเอาไว้ เพื่อให้ประโยคที่ได้ไม่ติดกัน พอแสดงผล มันจึงเป็นไปตามรูปแบบด้านบนครับ แต่ถ้าใส่แค่ pick+pock ในคำสั่ง trace ค่าที่ได้จะเป็น

ปิ๊กรูปหล่อปิ้๊กหน้าตาดี

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



ชนิดที่เหลือ Sprite และ MovieClip
ยากจะอธิบายจริง เอาเป็นว่า มันก็เหมือนกระดาษแผ่นหนึ่งกับกระดาษปึกหนึ่งที่ใช้ทำภาพเคลื่อนไหวก็แล้วกัน
การที่คุณสร้าง symbol* ขึ้นมาสักอันหนึ่งใน library พอกดสร้าง คุณจะมีหัวข้อให้เลือก 3 แบบนั่นคือ movieclip button และ graphic ก็ตรงนั่นเลยครับ ในการสร้างตัวแปร แล้วกำหนดชนิดเป็นพวก Sprite และ MovieClip นั่นก็เหมือนเรากดสร้าง symbol นั่นเลย เพียงแต่เป็นการใช้สคริปสร้างก็เท่านั้นเอง

MovieClip = symbol> movieclip
Sprite = symbol>graphic

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

ถ้าเราจะสร้างรูปภาพขึ้นในโปรแกรม ให้เรากำหนดชนิดของตัวแปรเป็น sprite
ถ้าเราจะสร้างภาพเคลื่อนไหวในโปรแกรม ให้เรากำหนดชนิดของตัวแปรเป็น MovieClip

ไม่ต้องไปเข้าใจมันมากครับ เน้นวิธีใช้งานละกัน เพราะถ้าเจาะลึก สงสัยน่าเบื่อแย่

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

สำหรับถ้าเราจะสร้างรถให้วิ่งไปมา เราอาจสร้างตัวแปรเป็นมูฟวี่คลิ๊ป แล้วใส่คำสั่งมากมาย เพื่อให้รถวิ่ง
หรือไม่ก็ เราสร้างรูปรถจากบน stage โดยไม่ใช้สคริป ส่วนการเคลื่อนไหวก็ใช้ tween ช่วยเอา มันมีอุปกรณ์มากมายอยู่แล้วโดยไม่ต้องใช้สคริป

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

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


สรุปเลยดีกว่า
1.ชนิดของตัวแปร string ใช้สำหรับตัวแปรที่เป็นตัวหนังสือ
2. trace คือคำสั่งให้แสดงผลเมื่อรันโปรแกรมโดยการกด Ctrl+Enter
3. sprite คือชนิดตัวแปรที่เอาไว้สำหรับภาพนิ่ง
4. movieClip คือชนิดของตัวแปรสำหรับภาพเคลื่อนไหว

ถ้ายังไม่เข้าใจก็ยังไม่เป็นไรครับ อ่านตามไปก่อน แล้วพอเริ่มเอะใจลองกลับมาอ่านย้อน แล้วคุณจะร้องอ๋อครับ พบกันคาบหน้าครับ

*วิธีการสร้าง symbol
ก่อนอื่น เปิดโปรแกรม และเปิด library ขึ้นมา ถ้าไม่มี library ให้กด f11
ในกรอบของ library ด้านล่างจะมีเครื่องหมายแผ่นกระดาษและตัว + คล้าย new layer ของ photoshop
พอกด มันจะสร้าง symbol ขึ้นใหม่ โดยสามารถเลือกชนิดของ symbol ได้ด้วย

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

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