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

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

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

ไม่แน่ใจครับ แต่น่าจะมีผลนะ เพราะเวลารัน ยังไงๆมันก็ผ่านบรรทัดที่เราเขียนนี่นะ
แต่ทางที่ดี ตามหลักสคริปที่ถูกที่ควร น่าจะลบไปครับ เพื่อ optimise สคริป
หรือคอมเม้นท์ไว้ด้วย "//" หรือ " /* xxx */ " หากไม่อยากลบ (เผื่อเอาไว้เช็คตอนแก้งาน)

« แก้ไขครั้งสุดท้าย: 13 ธ.ค. 2007, 14:28 น. โดย ej_sing » บันทึกการเข้า



ขอบคุณครับ  ไหว้
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย
ต่อ..

Convert to Symbol & Instance

Symbol ในแฟลชคงหมายถึง ต้นแบบ (ประมาณนั้นในความคิดผม)
เมื่อเราทำ object ใดๆ ให้เป็น symbol แล้วนั้น
ตัว symbol จะเข้าไปอยู่ใน Library
เราสามารถ ดึง symbol หรือ ต้นแบบนี้มาใช้ใด้ โดยไม่ต้องสร้างใหม่ (งานต่องานนะ แต่สามารถดึงไปใช้ได้)
โดยเมื่อดึงจาก symbol มาแล้วนั้น ตัวที่ดึงมา จะถูกเรียกว่า instance

ลองทดสอบดูโดย

- วาดสี่เหลี่ยม หนี่งอัน
- คลิกที่สี่เหลี่ยม กด F8

เราจะเห็น...



เราจะเห็นว่ามีให้เลือก 3 type คือ

  • Movie clip - เรียกย่อๆว่า mc คิดง่ายๆ เหมือนเราสร้างคลิบวีดีโอขึ้นมาชิ้นหนึ่ง ซึ่งในนั้นจะมี ไทม์ไลน์ ของตัวเอง
  • Button - ปุ่ม คือ... มันเป็นปุ่มน่ะ ในนี้จะมีแค่ สี่เฟรม คือ เฟรม แสดงผล,เม้าส์มาแตะ,กดปุ่ม,ขอบเขต แสดงผลแต่ละเฟรมแบบออโต้
  • Graphic - คล้าย mc แต่คุณสมบัติมีความแตกต่างนิดหน่อยและน้อยกว่า mc

ในที่นี้ ผมจะเน้นที่ mc กับปุ่มนะ ไม่เน้น Graphic (ไม่ค่อยใด้ใช้น่ะครับ ใช้แต่ mc ใครมาอธิบายความต่างหน่อย)

เอาเป็นว่า ทำเป็น mc ก่อนละกันนะ  เอือม
เราก็จะใด้ mc มาหนึ่งตัวแล้วใช่มั๊ย
ทีนี้ลอง ลบ mc ที่อยู่บน stage ไปเลยครับ

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



 ลองดัดๆ ตัดๆ ต่อๆ แล้วดูผล




จะเห็นได้ว่า instance ทุกตัวที่ลากไปวาง เปลี่ยนไปตามต้นแบบทั้งหมด

กลับไปที่หน้ารูท หรือ stage ที่ปุ่ม Scene 1 (ตรงนี้จะบ่งบอกว่า ตอนนี้เราอยู่ที่ไหน เช่น ใน mc ใน bt ฯลฯ)





คงพอเข้าใจนะครับ

มากกว่านี้คงจะต้องโดนย้ายไปกระจู๋ อนุบาลแฟลชแน่ๆ เพราะยังไม่เข้าเรื่องสคริปเลย  ง่ะ

เอาล่ะกว่าจะเข้าเรื่อง  ยิ้มน่ารัก  มาเขียนสคริปลั่งงานตำแหน่ง mc กันดีกว่า

คุณสมบัติ หรือ property ของ instance 
ที่ใช้บ่อยๆแรกเริ่มคือ (เอาแค่นี้ก่อนนะ  ยิ้มน่ารัก )
คือเกี่ยวกับ พิกัด ขนาด transparent สเกล อันนี้แบบรวมๆ ใช้กันได้หมด

แอบอ้าง
_alpha : The alpha transparency value of the movie clip.
 
 _height : The height of the movie clip, in pixels.

 _width : The width of the movie clip, in pixels.
 
 _x : An integer that sets the x coordinate of a movie clip relative to the local coordinates of the parent movie clip.
 
 _xscale : Determines the horizontal scale (percentage) of the movie clip as applied from the registration point of the movie clip.

 _y : Sets the y coordinate of a movie clip relative to the local coordinates of the parent movie clip.
 
 _yscale : Sets the vertical scale (percentage) of the movie clip as applied from the registration point of the movie clip.
 

เอาล่ะนะ

เราจะเขียนสคริปที่เฟรมกัน  เกย์ออก 

ก่อนอื่น ต้องตั้งชื่อก่อน
ในที่นี้ชื่อ mc_mc

คลิกที่เฟรม กด F9 เปิด panel action
พิมพ์ลงไปว่า

แอบอ้าง
_root.onMouseDown = function() {
   mc_mc._x = _xmouse;
   mc_mc._y = _ymouse;
};


แล้วกด Ctrl+enter ดูผลลัพธ์ แล้วลองกดเม้าส์ดู
อธิบายสคริปได้ว่า
" เมื่อกดเม้าส์ ให้ ตำแหน่ง x y ของ mc เท่ากันกับตำแหน่งของเม้าส์ "

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

ลองทำตามครับ เดี๋ยวจะมาอธิบายสคริปแบบละเอียด
บันทึกการเข้า

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

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

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


  ไหว้
บันทึกการเข้า

ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย
สุดยอดเลยค่ะน้าแอ๊ด เดี๋ยวเกดลองไปทำเล่นดูค่ะ สนุกจัง+ ขอบคุณที่ให้ความรู้ค่ะ  ไหว้
บันทึกการเข้า

กินทุกอย่างยกเว้นต้นหอมค่ะ
ต่อ..โอ๊ยยฟิตชิบเป๋งเลย  ยิ้มน่ารัก

จากตัวอย่างที่แล้ว เราจะเพิ่มตัวแสดงผลพิกัดง่ายๆโดยใช้ text box

- เลือก text tool



- วาดลงไปที่ stage แล้วเปลี่ยนมันเป็น dynamic text ใส่ตรง var ว่า txt (หรือชื่ออะไรก็ได้)



ที่เฟรมแรก เดิมเราเขียนสคริปไว้ เราเพิ่มต่อท้ายไปว่า

แอบอ้าง
_root.onMouseDown = function() {

   mc_mc._x = _xmouse;
   mc_mc._y = _ymouse;
   txt = "x = "+mc_mc._x+" & y = "+mc_mc._y; // จำวิธีที่ให้ลอง trace() ได้ไหม นั่นล่ะเหมือนกัน
};

มันก็จะแสดงพิกัดให้เราทราบแล้ว เมื่อเรากดเมา้ส์ หรือเมื่อ event mouseDown มีการกระทำ  ยิ้มน่ารัก


มาต่อเรื่องหนักกระโหลกกัน  หมีโหด~
จากตัวอย่าสคริปนั้น เราจะเห็นวิธีเขียนสคริปที่ดูแล้ว งงดีจัง
ว่าไปแล้ว ........ อธิบายยากจัง  ไอ้มืดหมี

แอบอ้าง
_root.onMouseDown = function() {   // เมื่อมีการกดเม้าส์ที่รูท หรือหน้าเมนหลักชั้นนอกสุด..น่ะ ง่ะ
                           
//จะให้ทำอะไรก็แล้วแต่
 //จะให้ทำอะไรก็แล้วแต่

};// สิ้นสุดการทำงาน

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

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

ไม่งงนะ  (เหงื่อแตกพลั่ก)

แต่ อ้าววว ยังงี้ก็ไม่ถูกหลักการน่ะสิ เพราะไอ้ mc ที่เราต้องการสั่งงานมันอยู่เฟรมแรก
พอเราเล่นเลยมา มันไม่มี mc ตัวนั้นอยู่ ฟังชั่นนี้ก็ไม่จำเป็นที่จะใช้น่ะสิ

 โวย เออ ใช่เลย สคริปก็รันฟรีๆน่ะสิ กิน cpu เปล่าๆซะงั้น  โวย

เอาน่า   คริคริ   มีผูก ก็ต้องมีแก้ ใจเย็นพี่น้องครับ

เราสามารถ ลบ ฟังชั่นแบบที่เขียนเนี่ย ได้โดย

แอบอ้าง
delete _root.onMouseDown //  เกย์ออก แค่นี้แหล่ะ ง่ายๆเลย งงล่ะสิ

เราก็ใส่ใว้ที่เฟรม 25 ซะ เมื่อมาถึงเฟรม ก็ลบฟังชั่นนี้ซะเลย เป็นการ Optimise อย่างดีเลยนะ  อืมมมมห์

ทดสอบยังไงดีล่ะ
เอาแบบนี้

จากงานที่แล้ว
เราสร้างปุ่มขึ้นสักอัน

แล้วใส่ที่ปุ่มว่า

on(press){
delete _root.onMouseDown
}


ลองดูครับ

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

 ยิ้มน่ารัก ยิ้มน่ารัก

พักยก

เดี๋ยวจะเอาไฟลนี้ ทำเกมส์ง่ายๆมาให้เล่น

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

ไหว้ อันนี้ไม่รู้เลยครับ ขอบคุณมากๆ หลายๆ+


ถามครับ

คำสั่ง delete น่ใช้ได้ครอบจักรวาลเลยเปล่าครับ
เช่น delete พวก on enterFrame ต่างๆ ไรงี้
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ไหว้ อันนี้ไม่รู้เลยครับ ขอบคุณมากๆ หลายๆ+


ถามครับ

คำสั่ง delete น่ใช้ได้ครอบจักรวาลเลยเปล่าครับ
เช่น delete พวก on enterFrame ต่างๆ ไรงี้

ใช่เลยครับผม  เจ๋ง
บันทึกการเข้า

เกมส์พิกัดนรก  เกย์ออก

อิอิ มั่วแหลก

วิธีเล่น  คริคริ คงไม่ต้องอธิบายนิ  โวย ลุยโลด !!!!

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

ใครทำได้คลิกเดียว เซฟมาดูหน่อย  ยิ้มน่ารัก

คิดสคริปสดๆ แบบไม่วางแผน ขนาดนี้ยังตั้งหนึ่งชั่วโมงแน่ะ  เอือม

แอบอ้าง
_root.onMouseDown = function() {
   _root.chk(_root.rndx,_root.count);
   txt = "x = "+mc_mc._x;
};
count = 4;
rndx = random(400)+50;
targt_txt = "X = "+rndx;
txtn = "คุณคลิกได้อีก  "+_root.count+"  ครั้งเท่านั้น";
function chk(rndx) {
   _root.count -= 1;
   if (_root.count == 0) {
      _root.gotoAndStop(3); // แพ้
   }
   mc_mc._x = _xmouse;
   mc_mc._y = _ymouse;

   if (_xmouse == rndx) {
      _root.gotoAndStop(4);//ชนะ
   }
   txtn = "คุณคลิกได้อีก  "+_root.count+" ครั้งเท่านั้น";
}
จริงๆมีสามเฟรมน่ะ เอาง่ายๆ
เอาไฟล fla มาให้ชำแหล่ะด้วย เต็มที่เลย  ปลื้ม
ใครอยากเพิ่มแรนดอมเป็นมีพิกัด Y ด้วยก็ได้ สลับกัน
บันทึกการเข้า

โวย โห แค่นี้ก็เอามาทำเป็นเกมได้ด้วย
แถมสนุกด้วยนะ นัีบถือครับน้า

(กดบวกเรื่อยๆ เลยเนี่ย)
บันทึกการเข้า

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



ได้แล้ว   กรี๊ดดดดด กรี๊ดดดดด กรี๊ดดดดด
บันทึกการเข้า

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย


 กรี๊ดดดดด
บันทึกการเข้า

Today you , Tomorrow me.
ทำได้ ว้าว

 กรี๊ดดดดด



+ น้าแอ๊ด
บันทึกการเข้า

หน้า: 1 2 3 4 [5] 6 7 8 9 10 11 12 ... 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!