หน้า: 1 2 3 [4] 5 6 7 8 9 10 11 ... 31
 
ผู้เขียน หัวข้อ: อนุบาลงาน ActionSctipt  (อ่าน 311028 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
 แป๊ะยิ้ม


อันนหลังนี่ดีครับ   ดีกว่า เอนเทอร์เฟรมที่มันเช็คตลอด  (แจ๋ว แจ๋ว)
บันทึกการเข้า

ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย
ฮ่าๆๆๆ................ ลันล้า







 ชักจะยากแล้ว (เหงื่อแตกพลั่ก) แต่ขอบคุณนะคะ +
บันทึกการเข้า

กินทุกอย่างยกเว้นต้นหอมค่ะ
+เหมือนกันครับ ชักยากแล้วจริงๆ ด้วย (เหงื่อแตกพลั่ก)
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ต่อ....จากอันบนนั้นที่ไม่มีใครสนใจ เหลือบ
เฉลย ในแบบผมเอง ด้วยสมองน้อยๆคิดแบบง่ายๆ

เพราะี้จำไม่ได้หรอก ว่า mc อันไหนสร้างก่อนหลัง mc อันไหนอยู่ลำดับที่เท่าไร ใช่ไหมจ๊ะ
ผมจึงตั้งค่าแรกของลำดับชั้นไว้ เอาสูงกว่าทุกตัวเยอะๆหน่อยก็ได้ เอาไว้อ้างอิงไง

จากตรงนี้ ถ้าใครเผลอมาอ่าน ลองคิดตามช้าๆด้วย

สมมุติว่า ให้
แอบอ้าง
n = 1 //ใส่สคริปที่เฟรมหลักเลย

ตอนนี้ n เป็นค่าลอยๆที่ mc ทุกตัวต้องหยิบเอามาใช้อ้างอิง depth เพื่อสั่งลำดับชั้นตัวเอง
คือจัดลำดับชั้นกันใหม่เริ่มจากค่านี้เลย

โดยให้ mc ตัวไหนก็ตาม swapDepth() ด้วยค่า n และใหบวกเพิ่มขึ้น 1

และลำดับชั้นของตัวแรกที่กด ก็คือ 2 เพราะเราบวกค่า n เพิ่มขึ้น 1 แน่นอนสูงสุดๆเลย ห่างจากลำดับล่างๆเป็นหมื่นชั้น
ตอนนี้  n กลายเป็น 2 แล้วนะจ๊ะ เพราะเรา บวก 1 ไปแล้ว


พอตัวที่สองกดปั๊ปก็ swapDepth() ด้วยค่า n อีกและให้บวกเพิ่มขึ้น 1 ค่า
ซึ่งลำดับชั้นของตัวที่สองที่กด ก็คือ 3 สูงกว่าเมื่อกี้อีก 1
ตอนนี้  n กลายเป็น 3 แล้วนะจ๊ะ เพราะเรา บวกเพิ่มอีก 1


.... 4
.. 5
. 6

มันก็จะเพิ่มค่า n เรื่อยๆโดยไม่มีการซ้ำกันของลำดับชั้นในแต่ละ mc ครับ

งงไหมครับ  ยิ้มน่ารัก ไม่งงนะ

ทีนี้มาดูสคริปกัน

จากอันที่แล้ว เราจะเพิ่ม swapDepths() กันล่ะ

แอบอ้าง
on(press){    //เมื่อเอาเม้าส์มากดปุ่มนี้
      startDrag(this);           //ให้้เกาะติดเม้าส > this คือตัวเอง - แปลได้ว่า "ให้ตัวเองเกาะติดเม้าส์"   
     this.swapDepths(_root.n+1);                            //   เซ็ทลำดับชั้นของตัวเองด้วยค่า n อีกและให้บวกเพิ่มขึ้น 1 ค่า                   
}
on(release){
   //เมื่อปล่อยปุ่ม
       stopDrag();           //"ให้ตัวเองเลิกเกาะติด"
}

เอาสคริปนี้ใส่ใน mc ทั้งห้าตัว ก็จะได้ตามตัวอย่างนี้แล้วครับ  ยิ้มน่ารัก
// อันนี้ผมทำให้เห็นลำดับชั้นของแต่ละตัวด้วยครับ และใช้ฟังชั่นง่ายๆเอาครับ
จริงๆแล้วเริ่มลำดับที่ -16000 ก็ไ้ด้ครับ จะเห็นว่าค่าแรกเริ่มมันก็ -163xx โน่นแน่ะ  ง่ะ

<a href="http://img2.f0nt.com/flash/29d916d550236c0f3db8eb194c713dfe.swf" target="_blank">http://img2.f0nt.com/flash/29d916d550236c0f3db8eb194c713dfe.swf</a>

หวังว่าคงเข้าใจกันบ้างนะครับ
หากไม่เข้าใจ ฮือๆ~ ลองค่อยๆอ่านนะครับ จริงง่ายๆครับ แต่ตัวหนังสือเยอะไปนิดนึง ไม่รู้จะพิมพ์ทำไมเยอะแยะ
« แก้ไขครั้งสุดท้าย: 13 ธ.ค. 2007, 02:14 น. โดย ej_sing » บันทึกการเข้า

ขอบคุณค่ะกำลังทำความเข้าใจอยู่ คือสมมุติ เรามีสี่เหลี่ยม 5 อัน (ในที่นี้เรียกว่า mc รึเปล่า แหะๆ)
ก็เอาสคริปที่พี่สอนในกล่องนั่น ใส่ลงไปกับทุกสี่เหลี่ยมเลยใช่มั้ยคะ โดยค่า n+1 เหมือนกันทุกอันเลยใช่มั้ยคะ


เข้าใจถูกมั๊ยน๊า  (เหงื่อแตกพลั่ก)
บันทึกการเข้า

กินทุกอย่างยกเว้นต้นหอมค่ะ
ขอบคุณค่ะกำลังทำความเข้าใจอยู่ คือสมมุติ เรามีสี่เหลี่ยม 5 อัน (ในที่นี้เรียกว่า mc รึเปล่า แหะๆ)
ก็เอาสคริปที่พี่สอนในกล่องนั่น ใส่ลงไปกับทุกสี่เหลี่ยมเลยใช่มั้ยคะ โดยค่า n+1 เหมือนกันทุกอันเลยใช่มั้ยคะ


เข้าใจถูกมั๊ยน๊า  (เหงื่อแตกพลั่ก)

จะถูกก็ว่าถูกครับ
สี่เหลี่ยมพวกนั้นนั่น ให้ทำเป็น movieClip ก่อนครับ เรียกย่อๆว่า mc

และเข้าใจตรง n+1 ไหมครับ
อธิบายไม่ค่อยเก่งซะด้วย (เหงื่อแตกพลั่ก)
บันทึกการเข้า

น้าแอด นี่สุดยอดจริงๆครับดูแลนักเรียนในคลาสอย่างดี  เจ๋ง เจ๋ง เจ๋ง เจ๋ง เจ๋ง....
บันทึกการเข้า

ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย
ส่งค่ะ โวย



<a href="http://img2.f0nt.com/flash/f5830530ef2b408a4f59dbeac3616f32.swf" target="_blank">http://img2.f0nt.com/flash/f5830530ef2b408a4f59dbeac3616f32.swf</a>
บันทึกการเข้า

กินทุกอย่างยกเว้นต้นหอมค่ะ
ไหว้ เข้าใจมากเลยครับน้าแอ๊ด+



จริงๆ แล้วเหมือนสอนข้ามขั้นไปหลายสเต็ปเลยนะ กร๊าก
น่าจะกลับมาเรื่องตัวแปรง่ายๆ ก่อน (เหงื่อแตกพลั่ก) เช่น บวกเลขอะไรงี้
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
กรอบของเกดอยู่ไหนครับ หมีโหด~
บันทึกการเข้า

<a href="http://img3.f0nt.com/flash/66d37d0393ee1ab1e2e55182dfabf34e.swf" target="_blank">http://img3.f0nt.com/flash/66d37d0393ee1ab1e2e55182dfabf34e.swf</a>

A Long Patience: Wish Us Luck (and Happy Anniversary)
นั่นสิ ดูโล๊งโล่งฮ่าๆๆๆ
บันทึกการเข้า

กินทุกอย่างยกเว้นต้นหอมค่ะ
ส่งค่ะ โวย



<a href="http://img2.f0nt.com/flash/f5830530ef2b408a4f59dbeac3616f32.swf" target="_blank">http://img2.f0nt.com/flash/f5830530ef2b408a4f59dbeac3616f32.swf</a>



 ฮือๆ~ ดีใจ มีคนส่ง
ทำถูกต้องแล้วครับ

แต่ประเด็นคือหลักการครับ ว่าเข้าใจกันมากน้อยแค่ไหน
อันนี้มีสคริปให้ง่ายหน่อย แต่อันต่อๆไปจะมีแต่ตัวอย่างงาน และตัวอย่างคร่าวๆเท่านั้น
ไหว้ เข้าใจมากเลยครับน้าแอ๊ด+



จริงๆ แล้วเหมือนสอนข้ามขั้นไปหลายสเต็ปเลยนะ กร๊าก
น่าจะกลับมาเรื่องตัวแปรง่ายๆ ก่อน (เหงื่อแตกพลั่ก) เช่น บวกเลขอะไรงี้

ใช่ครับ ข้ามไปนิสนึง  กร๊าก  เดี๋ยววกกลับเรื่องอนุบาลสคริปแล้วกัน
บันทึกการเข้า

เบิ้ลเลย

ย้อนกลับมาเรื่องเบื้องต้นกันหน่อยนะ

ถ้าเราจะเขียนสคริปต่างๆสิ่งนึงที่ ทุกภาษาสคริปจะขาดไม่ได้เลยคือ การ 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);

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

+2
ชัดเลยครับ
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ


ลุงแอ๊ดครับ ที่ว่า trace ไม่แสดงผลที่อื่นเนี้ย

แต่มันรันด้วยรึเปล่าครับ ประมาณว่ากิน cpu เราไปด้วยใช่มั้ยครับผม  ไหว้
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย
หน้า: 1 2 3 [4] 5 6 7 8 9 10 11 ... 31
 
 
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!