เบิ้ลเลย
ย้อนกลับมาเรื่องเบื้องต้นกันหน่อยนะ
ถ้าเราจะเขียนสคริปต่างๆสิ่งนึงที่ ทุกภาษาสคริปจะขาดไม่ได้เลยคือ การ output เพื่อดูผลลัพธ์
ในแฟลชคือการใช้ trace() function
trace(expression:Object)
You can use Flash Debug Player to capture output from the trace() function and display the result. If any argument in a trace statement includes a data type other than a String, the trace function invokes the associated toString() method for that data type. For example, if the argument is a Boolean value the trace function invokes Boolean.toString() and displays the return value.
ตามนั้นเลย แต่ output ตัวนี้จะแสดงผลออกมาที่ส่วนหน้า output ของโปรแกรมแฟลชเท่านั้น
หากนำมาเล่นบน flash player หรือ บนหน้าเวบ หรือ publish ออกมาเล่นแบบ .exe
ส่วนของ trace() นี้จะไม่แสดงผล และไม่มีความหมาย
ตัวอย่างการใช้ trace()
- เปิดงานมาหนึ่งงาน
- คลิกที่เฟรมแรก
- กด F9 เพื่อเปิด panel Actionscript เราจะใส่สคริปที่เฟรมกัน
- พิมพ์ว่า...
trace("hello F0NT");
- กด Ctrl+Enter เพื่อทดสอบ แล้วดูผล ก็จะเป็นเช่นนี้แล มันจะแสดงผลออกมาที่ส่วนหน้า output ของโปรแกรม
ใส่สคริปที่เฟรมแรก เมื่อทดสอบเปิดงานปั๊ป มันก็จะรันคำสั่งตามที่เราเขียนเลย
output เพื่อ อะไร .........ก็ เพื่อเอาไว้ทดสอบตัวแปรต่างๆ การส่งค่่า เช็คว่าไอ้ตัวแปรนั้นน่ะ มาจากไหนมีค่าเท่าไร ฯลฯ สารพัด
ต่อไปจะใช้งานมันบ่อยเลยล่ะ หากอยากเขียนสคริปให้งานเรา Interavtive แบบแนวๆ
- อันนี้ตัวช่วยเบื้องต้นที่ควรใช้บ่อยๆ
==========================================================
มาถึงเรื่องการแทนค่า การประกาศตัวแปรตัวอย่าง
var test_txt:String = "hello F0NT"; //อธิบายว่า "ประกาศให้ test_txt เป็นตัวแปรประเภทตัวหนังสือ มีค่าเท่ากับ "hello F0NT"
//หรือ
test_txt = "hello F0NT"; // กรณีนี้ เราไม่ได้ประกาศว่า test_txt เป็นตัวแปรประเภทอะไร แต่ flash จะสร้างให้เองเมื่อเราแทนค่าใส่เข้าไป
ที่นี้ ตัวแปร test_txt จะเป็น String เพราะเราใส่ค่าให้มันเป็นตัวหนังสือ
สองตัวอย่างเขียนแตกต่าง แต่ผลลัพธ์เหมือนกัน
ความต่างอยู่ตรงที่......
.....ลืมไปแล้ว แต่เป็นเรื่องที่สำคัญระดับหนึ่ง ติดไว้ก่อนไม่อยากมั่วมาก
ทดสอบดูได้เลยโดย
var test_txt_1:String = "hello F0NT";
test_txt_2 = "hello F0NT";
trace(test_txt_1);
trace(test_txt_2);// output ออกมาว่า
hello F0NT
hello F0NT
ทีนี้เราจะผสมเอาตัวหนังสือกับตัวแปรมาต่อกันใน trace() แล้วแสดงผล
ด้วยการใช้ "+" เป็นตัวรวมเข้าด้วยกัน
var test_txt_1:String = "hello F0NT";
test_txt_2 = "hello F0NT";
trace("test_txt_1 is "+test_txt_1);
trace("test_txt_2 is "+test_txt_2);// output ออกมาว่า
test_txt_1 is hello F0NT
test_txt_2 is hello F0NT
เข้าใจแล้วใช่ไหมครับ เดาเอาว่าเข้าใจ
อีกนิดนึงว่า
การทำงานของสคริปจะทำงานเริ่มที่บรรทัดแรกและไปสุดจบที่บรรทัดสุดท้ายเสมอทดสอบง่ายโดยเขียนลำดับใหม่
var test_txt_1:String = "hello F0NT";
trace("test_txt_1 is "+test_txt_1);
trace("test_txt_2 is "+test_txt_2);
test_txt_2 = "hello F0NT";// output ออกมาว่า
test_txt_1 is hello F0NT
test_txt_2 is undefined
จะเห็นว่าตัวแรก output ออกมาตรงตามต้องการ
แต่ตัวที่สอง เราเสือก ให้มัน output ก่อนประกาศตัวแปร
ผลก็เลย undefined ครับ
undefinedly = [ADV] อย่างไม่มีคำบรรยาย, Related: อย่างไม่แน่ชัด, อย่างคลุมเครือ, Ant. definably
คือประมาณว่า
ไม่มีค่าใดๆอยู่ทีนี้ลองทดสอบบวกเลขง่ายๆดู ด้วยเครื่องหมาย " + - * / "
trace(20+50);
trace(90/2);
trace(15*4);
trace((20*5)/2);