Post นี้เราจะกลับมาทวนเรื่องราวการเขียนโปรแกรมด้วย ActionScript 3.0 กัน และอธิบายเกี่ยวกับ Flash Builder เพิ่มเติม สำหรับกับผู้เริ่มต้นต้องหมั่นทบทวนและลองเขียนดูบ่อยๆ หน่อยนะครับ
เรื่องแรก ทำความตกลงและความเข้าใจกันก่อนนะครับว่า Code ตัวอย่างถัดๆ ไปผมจะไม่ลงเป็นทั้งไฟล์ HelloWorld.as แล้ว เพราะมันกินเนื้อที่ โดยผมจะลงเฉพาะบรรทัดที่เราเขียนจริงๆ นะครับ แต่อันที่เป็นสรุปรวมอาจจะลงเต็มไฟล์ให้ครับ
อย่างเช่นผมบอกว่าเขียน
trace("1");
trace("2");
trace("3");
หมายความว่าในไฟล์ HelloWorld.as นั้นจริงๆ แล้วมีหน้าตาดังด้านล่างนี้นะครับ
package
{
import flash.display.Sprite;
public class HelloWorld extends Sprite
{
public function HelloWorld()
{
trace("1");
trace("2");
trace("3");
}
}
}
ขอให้เรา Focus Code ของเราอยู่ในพื้นที่ดังกล่าวก่อนนะครับ
package
{
import flash.display.Sprite;
public class HelloWorld extends Sprite
{
public function HelloWorld()
{
ให้เขียน Code อยู่ในพื้นที่ส่วนนี้ไปก่อน ส่วนอื่นยังไม่ต้องสนใจครับ
}
}
}
เรื่องที่สอง ทำความเข้าใจว่าโปรแกรมมันจะรันไปทีละบรรทัดจากบนลงล่าง เช่น ถ้าเราเขียนแบบนี้
trace("1");
trace("2");
trace("3");
มันก็จะ Output (ทาง Console) ออกมาเป็น
1
2
3
ถ้าเราสลับบรรทัดของ Code เป็น
trace("3");
trace("2");
trace("1");
Output ที่ได้ก็จะเป็น
3
2
1
เห็นมั้ยครับ ไม่ยากเลย โปรแกรมมันรันทีละบรรทัดจากบนลงล่าง เอาเป็นว่าเข้าใจอย่างนี้ก่อนในเบื้องต้นนะครับ
เรื่องที่สาม ปัญหาของผู้ที่เริ่มต้นเรียนรู้การเขียนโปรแกรมคือการพิมพ์ผิด Syntax ครับ งานเขียนโปรแกรมนั้นถือเป็นงานที่มีความละเอียดอ่อนมากถึงมากที่สุด ไม่เหมือนงานอื่นๆ ซึ่งตรงจุดนี้อาจจะทำให้การเรียนเขียนโปรแกรมนั้นรู้สึกว่ายากไปบ้าง แต่พอเขียนไปซักพักนึงก็จะเริ่มคล่องขึ้นเองครับ ตัวอย่างของการพิมพ์ผิดเช่น
trac("hi");
trace"hi");
trace("hi")
trcae("hi");
trace("hi";)
tr ace("hi");
เหล่านี้เป็นต้นครับ ถ้าคุณพิมพ์ผิดแม้แต่เพียงเล็กน้อยโปรแกรมคุณอาจจะเกิด Error ได้ทันทีครับ
พูดถึงเรื่อง Error นิดนึง Error นั้นแบ่งได้ง่ายๆ ออกเป็น 2 ประเภทตามช่วงเวลาที่โปรแกรมพบ Error ดังนี้
- Compile Time Error (หรือเรียกสั้นๆ ว่า Compile Error)
- Runtime Error
Runtime Error คือ Error ที่เกิดขึ้นตอนโปรแกรมของเรา (ไฟล์ .swf) กำลังทำงานอยู่ครับ Error ชนิดนี้ คุณอาจจะได้พบได้เจอเวลาใช้งานโปรแกรมต่างๆ กันบ้างแล้ว ที่เวลาใช้งานอยู่โปรแกรมก็ปิดตัวเองไป หรือค้างไปซะเฉยๆ หรือที่เราเรียกว่าโปรแกรม Crash พวกนี้ก็คือ Runtime Error ครับ เป็น Error ที่เกิดตอน Runtime นั่นเอง โดยที่ Runtime Error นี้จะแก้ยากกว่า Compile Time Error ครับ
ปกติ แล้วถ้าเราพิมพ์ Code ผิด Syntax สิ่งที่เราจะเจอส่วนใหญ่ก็จะเป็น Compile Time Error ครับ แต่การพิมพ์ผิดบางทีบางครั้งก็อาจจะทำให้เกิดเป็น Runtime Error ได้เช่นกันครับ
ลองกลับมาดู Code บรรทัดนี้ดูครับ
trace ( "3" ) ;
เขียนแบบนี้แล้วคิดว่าสามารถ Compile ได้หรือเปล่าครับ ลองเขียนและลอง Debug ดูนะครับ
ผลปรากฎว่า ตามรูปด้านล่างเลยครับ
โปรแกรมเรา Compile ผ่านและรันได้นะครับ Output ที่ Console ด้านล่างก็ออกเป็น
3
ถูก ต้องนะครับ คุณอาจจะสงสัยว่าอ้าวพิมพ์แบบนี้ได้ด้วยหรอ ผมก็ขอบอกว่า ได้ครับ ไม่ผิด Syntax ครับ แต่มันก็ไม่ควรเขียนแบบนี้นะครับ เพราะจะทำให้อ่าน Code เข้าใจยากครับ
ทีนี้เราลองกลับมาดูอันที่ผิด Syntax กันครับ เช่น
trac("hi");
พอเรากด Debug ปุ๊ปก็จะเจอแบบนี้ครับ
จะเจอหน้าต่าง Error in Workspace เด้งขึ้นมาฟ้องว่ามี Error อยู่ในโปรเจค HelloWorld ของเราครับ โดยมันจะถามว่าจะให้รันโปรแกรมตัวเก่ามั้ย (Proceed) หรือว่าจะยกเลิก (Cancel) ตรงนี้ต้องทำความเข้าใจหน่อยนึงครับ เวลาเจอหน้าต่างแบบนี้แปลว่าเกิด Compile Time Error ขึ้นแล้ว เมื่อกี๊นี้เรารู้แล้วใช่มั้ยครับว่าเมื่อเกิด Compile Error แปลว่ามันไม่สามารถ Generate ไฟล์ .swf ออกมาได้ เพราะฉะนั้นหากเรากด Proceed ไปมันก็จะเอาไฟล์ .swf ตัวเก่าจากการ Compile สำเร็จครั้งล่าสุดมารันให้ครับ ไม่ใช่การรันโปรแกรมที่มี Syntax ผิดนะครับ
โอ เค ปกติเวลาเราเจอหน้าต่างนี้เราก็จะกด Cancel ไปครับ แล้วก็หาจุดผิดพลาดที่เป็นสาเหตุของ Compile Error อันนี้และจัดการแก้ไขซะให้เรียบร้อย วิธีการมีดังนี้ครับ
ให้ เราคลิกที่ Tab "Problems" ที่มันอยู่ทางซ้ายมือสุดใน Level เดียวกันกับ Tab "Console" ครับ จะเห็นว่ามันมีฟ้องว่าโปรแกรมเรามีอยู่ 1 Error ให้คลิกลูกศรเพื่อ Expand ออกมาดูรายละเอียด Error ดังภาพครับ
แต่ละ Compile Error มันก็จะมีรายละเอียดบอกครับ ส่วนที่สำคัญๆ ได้แก่
- Description - อธิบายเกี่ยวกับ Error นั้นๆ
- Resource - บอกไฟล์ .as ที่เกิด Error นี้ขึ้น
- Path - บอกตำแหน่งที่อยู่ของไฟล์ที่แจ้งไว้ใน Resource
- Location - บอกบรรทัดที่เกิด Error
หลายๆ ท่านอาจจะบอกว่า เอ๊ะ จริงๆ แล้วสังเกตุดูดีๆ หน้าบรรทัดที่มันเกิด Error เนี่ย มันมีเครื่องหมาย x อยู่ในวงกลมสีแดงบอกอยู่แล้วนี่นา ไม่ต้องไปดูที่ Tab "Problems" ก็ได้ อันนี้ถูกต้องครับถ้าโปรแกรมเรามีขนาดเล็กและมีไฟล์ .as แค่ไฟล์ หรือไม่กี่ไฟล์ แต่คุณลองคิดดูว่าถ้าเกิดโปรแกรมเราใหญ่มากมีไฟล์ .as อยู่หลายสิบไฟล์ แต่ละไฟล์มีมากกว่า 300 บรรทัด คุณจะมานั่งไล่เปิดไฟล์ดูทุกไฟล์ หรือ Scroll หา Error จากเครื่องหมายนี้หรอครับ
Error ที่แสดงอยู่ใน Tab "Problems" นั้นจะแสดง Errors ทั้งหมดในโปรแกรมเราครับ ไม่ใช่เฉพาะไฟล์ .as ที่เปิดอยู่เท่านั้น เพราะฉะนั้นการไล่แก้ Error โดย Double Click จากทาง Tab "Problems" จะช่วยเราประหยัดเวลาได้เยอะมากเลยทีเดียวครับ
Flash Builder ยังช่วยอำนวยความสะดวกให้เราอีกประการหนึ่งนั่นก็คือ Flash Builder สามารถ Auto-Compile แถมยังสามารถ Detect และแจ้ง Compile Error ได้ทันทีทุกครั้งที่เรา Save ไฟล์ .as ครับ โดยที่ Option นี้เราสามารถ Enable หรือ Disable ก็ได้ครับ ณ ตอนนี้ก็ปล่อยให้มัน Enable ไปก่อนละกันนะครับ
ยังอยู่ที่เรื่อง Error อีกเล็กน้อยครับ หากไฟล์ .as ใดๆ ก็ตามของเรามี Error อยู่ นอกจากแจ้งที่ Tab "Problems" แล้ว Flash Builder ยังแจ้งอีก 3 ที่ครับ ในขณะที่ไฟล์ .as นั้นๆ เปิดอยู่เท่านั้นนะครับ ตามรูปด้านล่างเลยครับ
หมายเลข 1 เราพูดถึงไปแล้ว หมายเลข 2 ถ้ามีไฟแดงขึ้นตรงนี้แสดงว่าไฟล์นี้มี Error อยู่ครับ ส่วนหมายเลข 3 บอกตำแหน่งที่เกิด Error ขึ้นในไฟล์นี้โดยเทียบตำแหน่งกับ ScrollBar ครับ ปกติแล้วถ้าไฟล์ .as เรายาวขนาด 100 - 300 บรรทัดขึ้นไป เราก็จะกวาดสายตามองที่ตำแหน่ง 3 ก่อนครับ พอ Scroll ไปใกล้ๆ แล้วค่อยมามองที่ตำแหน่ง 1 เพื่อหาบรรทัดที่เกิด Error นั้นๆ ครับ
สรุปเรื่องที่สามนะครับ แค่อยากจะบอกว่าสำหรับมือใหม่ผู้เริ่มต้น อยากให้พิมพ์ให้เป๊ะกับในตัวอย่างก่อนนะครับ ไม่ว่าจะเป็นการเว้นวรรค การขึ้นบรรทัดใหม่ ไม่งั้นอาจจะเจอปัญหาหรือ Compile Error ต่างๆ ได้ครับ แต่ถ้าคิดว่าเชียวชาญประมาณนึงแล้วอันนี้ไม่เป็นไรครับ
Post นี้ว่าจะสั้นๆ ดันร่ายซะยาวเลยครับ งั้นขอจบที่ตรงนี้ก่อนนะครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น