หน้า: [1] 2 3
 
ผู้เขียน หัวข้อ: เริ่มเดินไปกับ Flash ActionScript  (อ่าน 32520 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
อยู่เฉยๆ ก็หลับซะเปล่าๆ นั่งพิมพ์เล่นดีกว่า

ActionScript ต่อไปเราจะเรียกย่อๆว่า as

จริงๆแล้วใครจะเขียน as ได้ จะต้องใช้แฟลชมาพอสมควร คือ ทำโมชั่นทวีน โมชั่นเชป วาดรูป รู้จัก สร้างเฟรม รูั้จัก พื้นฐานนั่นแหละ

รู้มันให้หมด ถ้าไม่รู้ อย่ามาถาม ที่นี่ as เพียวๆ


เริ่มจากสิ่งที่ต้อง ฝังลงในหัวสมอง ก่อน อ่านมันเข้าไป กับกฏเหล็ก

กฏข้อที่ 1
การเขียนสคริป มี 2 แบบ นั่นคือ เขียนบนเฟรม และเขียน บน วัตถุ
วัตถุใน ที่นี้ เราจะเรียกว่า Symbol  โดย Symbol ที่สามารถเขียน as ลงไปได้นั้น มี 2 ชนิดคือ
-MovieClip
-Button

กฏข้อที่ 2
-การเขียนสคริปบนเฟรม สคริปจะทำงานก็ต่อเมื่อ หัวอ่าน (นึกให้เป็น เครื่องเล่น VDO ) เล่นมีถึงเฟรมที่มีสคริปนั้นอยู่  โดยการเขียนลงบนเฟรม สามารถเขียนลงไปได้เลย

-การเขียนสคิป บน Symbol จะต้องเขียนภายใต้ event หรือเหตุการณ์เท่านั้น

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


กฏข้อที่ 3
การตั้งชื่อ ฟังชั่น หรือตัวแปรใดๆ จะต้องตั้งให้ไม่ซ้ำกับคำสงวน หรือ key word
เช่น  for  do  this  _root  และอื่นๆจำไม่ได้  แต่จำง่ายๆ อย่าไปตั้งซ้ำกับคำสั่ง ที่มันมีอยู่ในแฟลชก็พอแล้ว(จริงๆจะมีบางคำสั่ง  ที่สามารถตั้งซ้ำได้โดยไม่เกิด error แต่เริ่มต้นอย่าไปซ้ำกับใครเลย)

กฏข้อที่ 4
เนื่องจาก as เป็นภาษาที่มอง ลักษณะของ อักษรพิมพ์เล็กและอักษรพิมพ์ใหญ่ต่างกัน ดังนั้นจึงต้องระมัดระวังในการพิมพ์ให้ถูกต้องทุกตัวอักษร
*เช่นคำสั่ง  gotoAndStop  จะถูกต้อง แต่  GOTOANDSTOP จะถือว่าผิด

-วิธีการจำ  สำหรับคำขึ้นต้นคำแรก จะขึ้นต้นด้วย ตัวพิมพ์เล็ก ส่วนคำถัดไปจะขึ้นต้นด้วย พิมพ์ใหญ่
*เช่น  gotoAndStop จะแยกได้ 3 คำ   goto และ And และ Stop

*สำหรับ คำสั่งที่บ่งบอกว่าเป็นออปเจกต์ จะขึ้นต้นด้วยพิมพ์ใหญ่ เช่น
LoadVars()     Sound()    Date()


กฏข้อที่ 5
การจบคำสั่งใดๆ ควร ขึ้นบรรทัดใหม่ด้วยทุกครั้ง และเพื่อ ให้เป็นสันดานที่ดีติดตัวไป ควรพิมพ์ ;  (เซมิโคล่อน)  จบท้ายคำสั่งด้วย   แต่บางคำสั่ง ไม่ต้องมี ;  ถ้ามีจะ error เช่น  #include



//*************************************************************

สำหรับกฏ 5 ข้อ (มีอีกรึเปล่าวะ กลัวลืม) ให้ท่องให้ขึ้นใจ แล้วต่อไปเราจะมาเริ่มต้น พื้นฐาน กันต่อ เน่อ
บันทึกการเข้า

โอ้วว  กระจู๋ดีมีสาระ 


มารอเรียนครับ   เจ๋ง
บันทึกการเข้า

โฮ๊ะ  โฮ๊ะ  โฮ๊ะ  โฮ๊ะ
เยี่ยมมากครับ  กรี๊ดดดดด
บันทึกการเข้า
สุดยอด  กรี๊ดดดดด
ตามมาเป็นศิษย์ครับ
บันทึกการเข้า

        AH_LuGDeK, AH_LuGDeK_R
ตีตั๋วๆ (+2) กรี๊ดดดดด
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ดีครับๆ สอนเข้าไว้ จะตามมาเรียน กรี๊ดดดดด
บันทึกการเข้า
หน้ามึน

Animate ยังไม่คล่องเลย  ฮือๆ~
ยังไงก็ขอบคุณครับ  ฮิ้ววว
บันทึกการเข้า
ต่อมาเราจะมาเรียนรู้คำสั่ง trace กัน คำสั่งนี้ใช้เป็นประจำเหมือนกัน



คลิกที่เฟรม แล้วเปิดหน้าต่าง Action ขึ้นมา แล้วพิมพ์ตามตัวอย่าง แล้วรันดู นี่คือ การเขียนโปรแกรมแรกของพวกเรา

คำสั่ง trace มีไว้สำหรับ การแสดงข้อความ หรือ ตัวแปร ออกมาทางหน้าต่าง output ซึ่งคำสั่งนี้จะไม่มีผลใดๆกับ swf หรือ งานที่เราจะนำมาใช้เลย เพราะคำสั่งนี้ มีไว้เพื่อ ทดสอบ เพื่อแสดง ตัวแปร ข้อความ ไว้แก้ไขข้อผิดพลาดของโปรแกรม (debug) ในกรณีที่ใช้คำสั่งนี้ มี 3 ทาง ที่ใช้บ่อยๆ

1.ไว้ทดสอบคริปเบื้องต้น เช่นเขียนสคริปคำนวน ก็ ใช้ trace แสดงค่าออกมาก่อนเพื่อตรวจความถูกต้อง ก่อนที่จำทำหน้าแสดงผลบนไฟล์ swf ต่อไป

2.ไว้สำหรับแก้ไขข้อผิดพลาดของโปรแกรม เช่น ติดตา่มดู ตัวแปรใดๆ ที่คิดว่า มีโอกาสเกิดความผิดพลาด เช่น เขียนโปรแกรมให้ลูกบอลกระเด้ง แต่ปรากฏว่า กระเด้งไปผิดทาง จึง trace ตัวแปร ค่าที่ทำให้ลูกบอลเด้งไปทางไหน มาดู ว่าผิดตรงไหน

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


**จากในรูปเราจะเห็นว่า ที่มุมซ้ายบน จะเขียนไว้ว่า  Actions - Frame  ตรงนี้เกิดจากเราใส่สคริปลงบนเฟรม เราคลิกที่เฟรมแล้วเปิดหน้าต่าง Action ออกมา หากว่าเราคลิกที่ มูฟวี่คลิป มันก็จะขึ้น  Actions - MovieClip หรือหากเราใส่ที่ Button มันก็จะขึ้นว่า Actions - Button
มีไว้ดูว่าตอนนี้เราใส่สคริปถูกที่หรือไม่

**ส่วนเครื่องหมาย เข็มปัก ที่ข้างตัวเลข Layer 1 : 1 มีไว้สำหรับ ปักหมุดสคริปไว้ เช่นเราต้องเขียนสคริปพร้อมกันถึง 10 วัตถุ เราก็ปักหมุดทุกตัวไว้ พอเราแก้ไข เราก็ คลิกเลือกที่แถบได้เลย จะได้ไม่ต้องสลับไปสลับมา

**อิงจาก แฟลช8 นะครับ
« แก้ไขครั้งสุดท้าย: 30 พ.ย. 2006, 10:06 น. โดย heart » บันทึกการเข้า

รออยู่
บันทึกการเข้า

นักเขียนการ์ตูนรายปี
อั๊ง~  นะนะนะ
บันทึกการเข้า
ต่อมาเป็นเรื่องของตัวแปร


ตัวแปร หรือ Variable เป็นสิ่งที่ขาดไม่ได้ สำหรับภาษาโปรแกรมแทบทุกภาษา

ตัวแปร เปรียบเสมือน ตัวแทนของแรม  เมื่อเราต้องการเก็บข้อมูลใดๆ เพื่อมาคำนวน หรือแสดงผล เราต้องเก็บไว้ที่แรม

การสร้างตัวแปรมาเก็บข้อมูล ก็เหมือนเรา สั่งเก็บลงไปที่แรม

เช่น

โค้ด:
a = 1;

นี่คือพื้นฐานง่ายๆสำหรับการกำหนดค่าให้ตัวแปร

จริงๆแล้ว การสร้างตัวแปร ขึ้นมา เราสามารถสร้างได้ หลายวิธี
การสร้างตัวแปร เราจะเรียกว่า การประกาศตัวแปร


โค้ด:
var a;
var b =1;
var a,b,c;
d = "yahoo";

เราจะใช้คำสั่ง var ในการประกาศตัวแปรนั้นๆขึ้นมา

ในบางภาษา การประกาศตัวแปรถือว่า ต้องทำทุกครั้งที่เรียกใช้ แต่ในแฟลช เราไม่จำเป็นต้องประกาศก็ได้  แต่กำหนดลงไปเลย เช่นเดียวกับโค้ดบรรทัดที่ 2
b=1;
แต่ว่าถ้าเราเขียนเป็นคลาสเราต้องประกาศตัวแปรทุกครั้ง

สำหรับตัวแปร จะมีหลายประเภท ตามแต่ชนิดของข้อมูล ที่จัดเก็บ จริงๆถ้าจะเอาเป็นวิชาการ มีเยอะมาก แต่เราจะมาเล่าให้ฟังตามภาษาชาวบ้านก็แล้วกัน

ชนิดของตัวแปร
-ตัวเลขจำนวนเต็ม integer เก็บข้อมูลชนิด จำนวนเต็ม เช่น -1  -2  0 1 2 3 4
-ตัวเลขทศนิยม float เก็บจำนวนทศนิยมเช่น  20.56
-ตัวอักษร(1ตัว) char  เช่น  A
-ข้อความ String เช่น  สวัสดีครับ
-ตรรกกะ Boolean (จริง/เท็จ)  เช่น  true หรือ false  อาจจะแทนด้วย 0 หรือ 1 ก็ได้ แต่นิยมให้ใช้ true /false จะดีกว่าเพราะว่า 0 1 จะไปสับสนกับเลขจำนวนเต็ม

เราสามารถใช้คำสั่ง typeOf มาเช็คได้ว่า ตัวแปรนี้ เป็นตัวแปรชนิดไหน
เช่น

โค้ด:
a = 1;
trace(   typeOf( a )  );

แล้วลองรันดูนะครับ
นี่เป็นตัวอย่างที่ดีของการใช้คำสั่ง trace เหมือนกัน

typeOf จะแสดงชนิดออกมา ซึ่งมีความหมายตามนี้

แอบอ้าง
String  คือสตริง หรือข้อความนั่นแหละ
Movie clip  ข้อมูลชนิดนั้นคือมูฟวี่คลิป(ในกรณีที่ typeOf กับชื่อของมูฟวี่คลิป)
Button ข้อมูลชนิดนั้นคือปุ่ม
Text field  คือ เท็กซ์ฟิล (ประเภท dynamic กับ static เดี๋ยวมีให้อ่านบทหลังๆ)
Number คือ ตัวเลข
Boolean  ข้อมูลตรรกกะ จริง/เท็จ
Object  เป็น ออบเจกต์ หรือวัตถุ (ก็พวก OOP ไงล่ะจ๊ะ)
Function เป็นชื่อของฟังชั่น

สำหรับการตั้งค่าให้ตัวแปรนั้น จะมีความแตกต่างระหว่างตัวแปรแต่ละชนิดเล็กน้อย

การต้องค่าที่เป็นตัวเลข จะใส่ตัวเลขลงไปได้เลย เช่น

โค้ด:
a = 1;
b = 0.5;
การตั้งค่า ตัวแปรที่เป็น สตริง จะต้องใส่ "   หรือ  '  คร่อมไว้เท่านั้น เช่น

โค้ด:
a = "สวัสดีค่ะ";
b = 'สวัสดีครับ';

การตั้งค่า ตรรกกะ ไม่ต้องมี " คร่อม (หรือมีก็ได้ แต่ผมนิยมไม่มี เพราะถ้ามี มันจะไปซ้ำกับ สตริง)
เช่น

โค้ด:
a = true;
b = false

บันทึกการเข้า






จริงๆแล้วใครจะเขียน as ได้ จะต้องใช้แฟลชมาพอสมควร คือ ทำโมชั่นทวีน โมชั่นเชป วาดรูป รู้จัก สร้างเฟรม รูั้จัก พื้นฐานนั่นแหละ

รู้มันให้หมด ถ้าไม่รู้ อย่ามาถาม ที่นี่ as เพียวๆ



ขอตีสนิทกับเจ้าพวกนี้ก่อนครับ ฮือๆ~


บันทึกการเข้า

งบน้อย
ต่อไปเราจะมาเรียนรู้เรื่อง Operator หรือตัวดำเนินการ

ตัวแรกที่เรารู้จักไปแล้วนั่นก็คือ =

มีไว้ใส่ค่าให้ตัวแปร

+ (addition)เครื่องหมายบวก
+= (addition   assignment)บวกค่าตามจำนวน แล้วแทนที่ลงไปในตัวแปรเดิม เช่น a += 5; หมายความว่า a มีค่าเท่าไร บวกไปอีก 5 (ค่าตัวแปร a จะมีค่าตามค่าใหม่)
= (assignment)อันนี้รู้กันแล้ว
-- (decrement)มีลบ 2 ตัวนะ เครื่องหมายนี้มีไว้ลบค่าออกทีละ 1 เช่น a--; จะมีความหมายว่า a มีค่าเท่าไร จะลบออกไป 1
/ (division)เครื่องหมายหาร เช่น 52/78
/= (division   assignment)หารเท่ากับ ^^ มีความหมายว่า เหมือนกับ += แต่เปลี่ยนเป็นหาร
== (equality)ไว้ตรวจสอบ จะต่างจาก = คือ = มีไว้ให้ค่า เช่น a =1 ให้ a มีค่าเป็น 1 แต่ถ้า == สองตัวแบบนี้ไว้ตรวจสอบเช่น a == 1 จะมีความหมายว่า a มีค่าเป็น 1 จริงหรือไม่ ถ้าจริง จะเป็น true ถ้าไม่จริงจะเป็น false
> (greater   than)เครื่องหมาย มากกว่า เช่น a > b ถ้า a มากกว่า b จะมีค่าเป้น true
>= (greater than or equal   to)มากกว่าหรือเท่ากับ เช่น a >= b ถ้าa มีค่า มากกว่า หรือเท่ากับ b จะแสดงค่า true
++ (increment)บวกบวก ความหมายคือ มีเท่าไร บวกไปอีก 1 เช่น a++ หมายความว่า a มีค่าเท่าไรบวกไปอีก 1
!= (inequality)ไม่เท่ากับ ความหมายตรงข้ามกับ ==
< (less   than)เครื่องหมายน้อยกว่า
<= (less than or equal   to)เครื่องหมาย น้อยกว่า หรือเท่ากับ
&amp;&amp; (logical   AND)     และ ไว้สำหรับเปรียบเทียบเงื่อนไข ที่ต้องเป็นจริงทั้งสองเงื่อนไข เช่น คนจะสมัครงาน ต้องเป็นผู้หญิง และยังไม่ได้สมรสเท่านั้น
    
     
     คือ ต้องเป็นจริงทั้งสองเงื่อนไข
    
and (logical   AND)ความหมายเดียวกันกับข้างบน แต่ใช้คำว่า and ก็ได้
! (logical   NOT)เครื่องหมาย นิเสธ หรือตรงข้าม เช่น ถ้า a มีค่าเป็น จริง !a จะมีค่าเป็นเท็จ
not (logical   NOT)เช่นเดียวกับคำสั่งข้างบน
|| (logical   OR)     หรือ ไว้สำหรับเปรียบเทียบ ให้เป็นจริงเพียงเงื่อนไขใดเงื่อนไขหนึ่งเท่านั้น เช่น
    
     
     รับพนักงาน ผู้หญิง หรือ ผู้ชาย
    
     
    คือเป็นจริงเงื่อนไขใดก็ได้ แต่ถ้า เท็จทั้งคู่ ก็จะถือว่าเงื่อนไขนี้เป็นเท็จ
   
or (logical   OR)เช่เดียวกับคำสั่งด้านบน
% (modulo)เป็นการหารเพื่อหาค่าเศษ เช่น a = 10%3 ดังนั้น a จะมีค่าเป็น 1 เพราะ 10หาร 3 เหลือเศษ 1 
%= (modulo   assignment)คล้ายๆ += แต่เป็นการ mod แทน
* (multiplication)เครื่องหมายคูณ
*= (multiplication   assignment)คล้ายๆ += แต่เปลี่ยนเป็น คูณแทน
- (subtraction)เครื่องหมายลบ
-= (subtraction   assignment)คล้ายๆ += แต่เปลี่ยนเป็น ลบ แทน

บันทึกการเข้า

หลังจากรู้จัก operator แล้ว ลองมาทำอะไรเล่นๆซักหน่อยละกัน


โค้ด:
width = 20;
height = 50;

ans = width*height;

trace(ans);

ตามคำสั่งด้านบนนี้นำไปเขียนลงบนเฟรม แล้วจึงรันดู
บรรทัดแรก จะกำหนดค่า width
บรรทัดที่สอง จะกำหนดค่า height

บรรทัดที่ สาม จะกำหนดค่า ans มีค่าเท่ากับ width คูณ height

บรรทัดสุดท้าย จะแสดงค่า ans ออกมา

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

ตื่นๆๆๆๆ เรียนแค่นี้ จะเลิศเลออะไรนักหนา  มาทำการบ้านกันก่อน


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

เส้นรอบวง จากสูตร

2*pi*r;

โดยกำหนดให้ pi มีค่าคงที่ เป็น 22/7
และ r มีค่าเป็นรัศมี เท่าไรก็ได้

ส่งเฉพาะโค้ด ก้ได้(ใครว่าง่ายไปก็ไม่ต้องทำ สำหรับมือใหม่ก่อนละกับ ปรับพื้นฐาน)
บันทึกการเข้า

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

เส้นรอบวง จากสูตร

2*pi*r;

โดยกำหนดให้ pi มีค่าคงที่ เป็น 22/7
และ r มีค่าเป็นรัศมี เท่าไรก็ได้

r = user input;
pi = 22/7;

ans = 2*pi*r

trace(ans);

รับค่า r จาก user ไม่เป็น  ง่ะ
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย
หน้า: [1] 2 3
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!