ฟอนต์ฟอรั่ม

F0NT Community (เก่า) => ห้องคอม => ห้องแฟลช => โพสต์ถูกเริ่มโดย: X Saint เมื่อ 06 พ.ค. 2006, 07:20 น.

ชื่อเรื่อง: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 07:20 น.
ความเดิมตอนที่แล้ว เรากดปุ่มนึง ตัว MC ของเราก็วิ่งไป กึ๊ก นึง ใช่มั๊ยครับ
ทำยังไงให้กดทีเดียวแล้วมันก็วิ่งปรู๊ดยาวๆ แล้วค่อยหยุด ให้มันดูเหมือนกดแล้วค่อยๆวิ่งไปเอง ไม่ใช่ต้องคอยกดถี่ๆอยู่

กลไกที่เราต้องการคือ การทำซ้ำ

เรารู้จัก .onRelease .onPress. onRollOver จากตอนก่อนๆ ที่ทำให้กับปุ่ม ซึ่งเราเรียกว่า eventHandler กันแล้ว... คราวนี้มารู้จักเพื่อนใหม่ .onEnterFrame ซึ่งจะช่วยให้เราทำซ้ำได้

หลักการทำงานของ onEnterFrame คือ ทำทุกๆครั้งของจังหวะเปลี่ยนเฟรม ... ตรงนี้อาจจะงงหน่อยนะคับ คือ ผมเรียกว่า จังหวะเปลี่ยนเฟรม... เพราะในความเป็นจริง เรามีเฟรมเดียว หรือเฟรมไม่เปลี่ยน มันก็จะเกิดการทำซ้ำๆ... แต่ที่เรียกว่าจังหวะเปลี่ยนเฟรม ... เพราะว่าตัว event นี้จะไปสัมพันธ์กับค่า frame rate ที่เราตั้งไว้... ปกติ flash จะให้ค่า = 12 frame per sec แปลว่า enterFrame จะทำงาน 12 ครั้ง ภายใน 1 วินาที... นั่นแปลว่าถ้าเราไปลด หรือ เพิ่มค่า fps ก็จะส่งผลต่อความเร็วของการทำคำสั่งภายใน enterFrame ด้วยคับ

เดิมเวลาเราต้องการ onRelease เราต้องเอาไปติดกับปุ่ม เป็น
butt.onRelease

ทีนี้เราต้องการใช้ onEnterFrame เราก็ต้องเอามันไปติดกับตัวอะไรสักอย่าง... โดยคุณสมบัติพื้นฐาน เราสามารถเอามันไปติดกับ MC ตัวใดๆ ก็ได้.. แต่ในที่นี้เราต้องการทำซ้ำเฉยๆ ไม่ได้ผูกพันกับ MC ใดๆ ง่ายที่สุดคือเอามันไปผูกติดกับ Timeline หลัก.... ซึ่ง เราเรียกว่า this จากการเขียน script ไว้ยัง Timeline หลัก... จึงได้รูปแบบของการใช้งานคือ

อ้างอิงthis.onEnterFrame = function() {
     คำสั่ง;
}

ดังนั้นถ้าเราทำแบบเดิม คือ บวกค่าให้ แกน x ของ MC ที่ชื่อว่า dot เราจะได้ script ดังนี้

อ้างอิงthis.onEnterFrame = function() {
   dot._x+=5;
   if(dot._x>300) {
      dot._x=0;
   }
}

ผลที่ได้
http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9186
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 07:52 น.
แต่ว่าตัวอย่างข้างต้นไม่เกี่ยวกับปุ่ม ถ้าเราอยากให้มันกดปุ่มแล้ว dot วิ่งไประยะนึงแล้วหยุด จะทำยังไง
นั่นก็คือ เอาทั้ง onRelease กับ onEnterFrame มารวมกันซะ

คิดกันทีละขั้นนะคับ เริ่มจาก เราทำปุ่มก่อน ได้ โค้ด เป็น

อ้างอิงbutt.onRelease = function() {

}

ทุกครั้งที่กดปุ่มเราต้องการให้มันทำซ้ำ เราจึงใส่ onEnterFrame เข้าไปข้างใน

กลายเป็น

อ้างอิงbutt.onRelease = function() {
     dot.onEnterFrame = function() {
               dot._x +=5;
               if(dot._x>300) {
                    dot._x=0;
               }
     }

}

สังเกตดีๆนะคับ ผมไม่ใช้ this.onEnterFrame เพราะ enterFrame ถูกเรียกใช้จาก butt ทำให้ this ไม่ใช่ timeline หลักอีกต่อไป... ดังนั้นผมเลยเอาไปฝากไว้ที่ mc ที่ชื่อ dot แทน

โค้ดทำงานได้แล้วคับ!!!! แต่!!! แบบนี้เราจะได้การวิ่งไปตลอด คือ กดทีนึงมันก็วิ่งไปตลอดชีวิต...

แต่ที่เราอยากได้คือ กดทีนึงก็วิ่งไประยะนึงแล้วหยุด รอการกดใหม่จึงจะวิ่งต่อ... จึงต้องมีการกำหนดเงื่อนไข ว่าจะให้มันทำซ้ำกี่ครั้ง

ผมเลยกำหนดตัวแปรสำหรับนับ ชื่อ i ขึ้นมา
โดยกำหนดให้ทุกครั้งที่เรากดปุ่ม i จะเท่ากับ 0
แล้วกำหนดเงื่อนไขว่าต้องการให้มันทำซ้ำ 20 ครั้ง นั่นคือมันจะวิ่งด้วยความเร็ว 5 pixel แต่ว่าทำซ้ำ 20 ครั้ง... แปลว่า ทุกครั้งที่กด มันจะวิ่งไประยะทาง 20 * 5 = 100 pixel นั่นเอง

ทำให้เราได้โค้ดออกมาเป็น

อ้างอิงbutt.onRelease = function() {
   i=0;
   dot.onEnterFrame = function() {
      if(i<20) {
         dot._x +=5;
         if(dot._x>300) {
            dot._x=0;
         }
         i++;
      }

   }
}

ยังไม่จบครับ... เนื่องจากว่า onEnterFrame ยังคงทำงานต่อไป ถึงแม้ว่า dot จะไม่ขยับแล้วก็ตาม... นั่นเพราะ onEnterFrame ถูกเรียกมาแล้ว มันก็ยังคงทำงานต่อไปตลอดชีวิต... เพื่อความเป็นระเบียบเรียบร้อย เมื่อเราหยุดแล้ว... จึงควรทำให้ enterFrame หยุดทำงานด้วย โดยการ delete มันซะ เมื่อ i>20 จึงได้โค้ดใหม่เป็น

อ้างอิงbutt.onRelease = function() {
   i=0;
   dot.onEnterFrame = function() {
      if(i<20) {
         dot._x +=5;
         if(dot._x>300) {
            dot._x=0;
         }
         i++;
      } else {
         delete dot.onEnterFrame;
      }

   }
}

ปล. รู้ได้ไงว่า enterFrame ยังทำงานอยู่ ในเมื่อ dot มันก็ไม่ขยับแล้วนี่คะ ?
.... ยังจำ trace จาก ตอนที่ 1 ได้มั๊ยครับ... ลองใส่มันดูภายใน onEnterFrame ด้านนอก if(i<20) นะ ... แล้วจะเห็นว่า แม้ว่า dot จะหยุดวิ่งไปแล้ว... แต่ trace ก็ยังคงทำงานอยู่ตลอดเวลา

จากโค้ดข้างต้น ทำให้ได้ผลดังนี้

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9187
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 08:07 น.
คราวนี้ลองมาดูอะไรสนุกๆ กัน

จากเดิม เราให้
x = x + 5;

ความจริงดูเผินๆ ก็คือ เราบวกค่าให้กับ x ทีละ 5 ใช่ป่ะคับ

แต่ถ้าใครเคยเรียน math มา จะรู้ว่า x = x + 5 เป็นสมการเส้นตรง
ทำให้มันวิ่งเป็นเส้นตรงยังไงหล่ะ

ถ้าสมมุติเรารู้ว่าสมการ sin เป็นสมการรูปคลื่น ดังนั้น ลองเอาสมการ sin มาใช้กับโค้ดเดิมดูซิ๊
สมการ sin รูปแบบพื้นฐาน อยู่ในรูป

y = sin x

เอามาแปลงให้เหมาะสมกับการแสดงผลใน flash เป็น

dot._y =  50*Math.sin(dot._x/10)+50;

ดังนั้นเราจะได้โค้ดเป็น

อ้างอิงthis.onEnterFrame = function() {
   dot._y =  50*Math.sin(dot._x/10)+50;
   dot._x +=3;
   if(dot._x>300) {
      dot._x=0;
   }
}

ก็จะได้ผลดังนี้

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9188

มาลองเล่นสมการรูปอื่นๆบ้าง - สมการ ดาวกระจาย

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9189

ปล. ตัวอย่าง ดาวกระจายข้างต้น.. ผมใช้เทคนิคสร้าง MC ซ้ำด้วย ซึ่งไม่เกี่ยวกับที่จะทำเท่าไหร่ จึงขอละไว้ก่อนนะครับ.. เพียงแต่สมการนี้มันเคลื่นไหวแล้วมองยากว่าเป็นรูปอะไร เลยทำให้มันเป็นหางไว้จะได้ดูง่ายขึ้น
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 06 พ.ค. 2006, 08:43 น.
กรี๊ดๆ  :25:

สุดยอด...
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: แอ๊ะ เมื่อ 06 พ.ค. 2006, 08:53 น.
เข้ามานั่งเรียนแต่เช้า  :45:

สุดยอดมาก
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ✌ เมื่อ 06 พ.ค. 2006, 09:16 น.
โว้วๆๆๆๆ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: หนูหรั่ง เมื่อ 06 พ.ค. 2006, 11:28 น.
เทพมากเลยครับ  :25:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 06 พ.ค. 2006, 11:59 น.
ตรีโกณ :25:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 12:33 น.
การบ้าน

มี 2 ข้อนะคับ ข้อแรกก่อน... ข้อสองค่อยตามมา

1) ทำเหมือนตอนที่ 2 ครับ แต่ทำให้มันขยับ วิ่งๆ ได้เก๋ขึ้น โดยอาศัยประโยชน์จาก onEnterFrame ...
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 06 พ.ค. 2006, 12:40 น.
เดี๋ยวมั่วมาส่งครับ  :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 12:44 น.
อ้างคำพูดจาก: เต่า เมื่อ 06 พ.ค. 2006, 12:40 น.
เดี๋ยวมั่วมาส่งครับ  :08:


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

ใช้แค่ช่วงแรก กับ ช่วงที่ 2 นะคับ... ช่วงที่ 3 ขำๆ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: icez เมื่อ 06 พ.ค. 2006, 13:12 น.
ส่งงานค้าบ รวบยอดเลยแล้วกัน

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9198
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 13:18 น.
^
^

ทีแรกนึกว่ารูดำๆ เป็นประตู เดินเข้าไปได้ อุตส่าห์บังคับให้มาที่รูดำ...

แต่มันไม่เห็นมีอะไรเกิดขึ้นเลย

แล้วจะมีรูไปทำไม  :34:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ✌ เมื่อ 06 พ.ค. 2006, 13:19 น.
ใช่ :30:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 06 พ.ค. 2006, 13:19 น.
โอ้ว... มันส์...

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9199

แค่วางจุดหมุนไว้ที่ปีกครับ ไม่ต้องใช้สติปัญญาอะไรเลย  :08:

นอกจาก _rotation
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: icez เมื่อ 06 พ.ค. 2006, 13:20 น.
code ยาวเฟื้อยยยย
btnYellow.onRelease = function() {
i = 0;
circle.onEnterFrame = function() {
if (i < 100) {
circle._x ++;
if (circle._x >= 300)
circle._x = 0;
if (circle._x < 0)
circle._x += 300;
i++;
} else {
delete circle.onEnterFrame;
}
}
}
btnBlue.onRelease = function() {
i = 0;
circle.onEnterFrame = function() {
if (i < 100) {
circle._y ++;
if (circle._y >= 300)
circle._y = 0;
if (circle._y < 0)
circle._y += 300;
i++;
} else {
delete circle.onEnterFrame;
}
}
}
btnRed.onRelease = function() {
if (i > 0 && i < 100)
delete circle.onEnterFrame;
}
btnGreen.onRelease = function() {
i = 0;
circle.onEnterFrame = function() {
if (i < 100) {
circle._y++;
circle._x += 20 * Math.sin(circle._y);
if (circle._y >= 300)
circle._y = 0;
if (circle._x >= 300)
circle._x = 0;
if (circle._y < 0)
circle._y += 300;
if (circle._x < 0)
circle._x += 300;
i++;
} else {
delete circle.onEnterFrame;
}
}
}
btnOrange.onRelease = function() {
i = 0;
circle.onEnterFrame = function() {
if (i < 100) {
circle._x++;
circle._y += 20 * Math.sin(circle._x);
if (circle._x >= 300)
circle._x = 0;
if (circle._y >= 300)
circle._y = 0;
if (circle._y < 0)
circle._y += 300;
if (circle._x < 0)
circle._x += 300;
i++;
} else {
delete circle.onEnterFrame;
}
}
}


เอาไว้... เอ่อ... การบ้านข้อ 2 แล้วกันนะครับ จะได้ทำลูกเล่นอะไรนิดหน่อย
เพิ่งเคยใช้ flash จริงๆ นะ จิ้มเล่นมาไม่กี่ครั้งเอง นอกจากใส่เพลง กับใส่วีดีโอ ก็ไอเนี้ย อีกอัน
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 13:22 น.
อ้างคำพูดจาก: เต่า เมื่อ 06 พ.ค. 2006, 13:19 น.
โอ้ว... มันส์...

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9199

แค่วางจุดหมุนไว้ที่ปีกครับ ไม่ต้องใช้สติปัญญาอะไรเลย  :08:

นอกจาก _rotation

เดินเหมือนสัตว์ประหลาดในเกม Spore

แต่ไหนปุ่ม  :31:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 06 พ.ค. 2006, 13:23 น.
การบ้านไว้ก่อนครับ  :42:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 06 พ.ค. 2006, 13:27 น.
อยากเล่น Spore  :42:
(เกมนี้ ผมซื้อแผ่นแท้นะครับลุงท็อป)

เต่าแปะโค้ดบ้างสิ  :42:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 06 พ.ค. 2006, 13:31 น.
อ้างคำพูดจาก: Saa3 เมื่อ 06 พ.ค. 2006, 13:27 น.
อยากเล่น Spore  :42:
(เกมนี้ ผมซื้อแผ่นแท้นะครับลุงท็อป)


ปีหน้าแหน่ะ... (ไม่แน่ว่าจะออกทัน)
เห็นบักตรึม โชว์ทุกที crash ทุกที  :42:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 06 พ.ค. 2006, 13:46 น.
อ้างคำพูดจาก: X Saint เมื่อ 06 พ.ค. 2006, 13:31 น.
ปีหน้าแหน่ะ... (ไม่แน่ว่าจะออกทัน)
เห็นบักตรึม โชว์ทุกที crash ทุกที  :42:

:08:

แต่ตัวเกมโคตรเจ๋งเลยครับ ลุง Will ก็เล่นแม่ม  :30:

(เข้าเรื่อง เดี๋ยวค่อยทำการบ้านมาส่งครับ :31:)
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Zafire06 เมื่อ 06 พ.ค. 2006, 13:52 น.
โอ้วววอ้าวววส์  :04:
ฟังก์ชั่นได้ด้วยยย  :04:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: L เมื่อ 06 พ.ค. 2006, 16:14 น.
แล้วที่ว่างของผุ้ที่พิการทางคณิตศาสตร์อย่างผมหายไปไหนครับ  :39:

ปล จะพยายาม ลอกมาให้สำเร้จครับ แต่ตอนนี้ปวดหัวมากหลังจากอ่านคำว่า สมการ :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: แมวเงียบ เมื่อ 06 พ.ค. 2006, 21:30 น.
เริ่มอ่านไม่รุ้เรื่องตั้งแต่สมการ sin แล้วค่ะ
แย่แล้ว
เลขกิพแย่ไงแย่งั้นมาตลอดเลยแฮะ
ตั้งแต่ประถมจน stat ตัวสุดท้ายที่เพิ่งจบไปนี่แหละ :08:


ปล. ยังไม่มีไอเดียการบ้านค่ะ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 07 พ.ค. 2006, 00:43 น.
 :08: อย่าไปดู พวก sin ครับ อันนั้นไม่เกี่ยวอ่ะคับ แค่ให้ดูเฉยๆว่ามันใช้สมการมาเล่นอะไรสนุกๆได้นะ
ดูเฉพาะส่วนที่ 1 กับ 2 ที่อธิบายการเขียน onEnterFrame ก็พอครับ... เพราะเดี๋ยวตอนเอาไปแก้โจทย์ ขยับกรอบ... มันก็ไม่ได้ใช้สมการ sin cos tan น่อ

:05: รู้งี้ไม่ใส่ไปดีกว่า....  :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 07 พ.ค. 2006, 05:23 น.
มาแล้วครับการบ้าน นั่งช่วยกันทำกับน้อง 2 คน
http://upload.i-poon.com/flash/gun.swf

อันนี้ code
อ้างอิง
//condition var
intSpeed=70;
angle=-45;
showAngle=angle*(-1);
gun._rotation=angle;
obj._rotation=angle;



//control Panel

butUp.onPress=function(){
   _root.onEnterFrame=function(){
      if(intSpeed<200){         
         intSpeed+=2;
      }
   }
}
butUp.onRelease=function(){
   delete _root.onEnterFrame;
}
butUp.onDragOut=function(){
   delete _root.onEnterFrame;
}

butDown.onPress=function(){
   _root.onEnterFrame=function(){
      if(intSpeed>40){         
         intSpeed-=2;
      }
   }
}
butDown.onRelease=function(){
   delete _root.onEnterFrame;
}
butDown.onDragOut=function(){
   delete _root.onEnterFrame;
}

butPowerUp.onPress=function(){
   _root.onEnterFrame=function(){
      if(angle>-90){         
         angle-=1;
         showAngle=angle*(-1);
         gun._rotation=angle;
         obj._rotation=angle;
      }
   }
}
butPowerUp.onRelease=function(){
   delete _root.onEnterFrame;
}
butPowerUp.onDragOut=function(){
   delete _root.onEnterFrame;
}

butPowerDown.onPress=function(){
   _root.onEnterFrame=function(){
      if(angle<0){         
         angle+=1;
         showAngle=angle*(-1);
         gun._rotation=angle;
         obj._rotation=angle;
      }
   }
}
butPowerDown.onRelease=function(){
   delete _root.onEnterFrame;
}
butPowerDown.onDragOut=function(){
   delete _root.onEnterFrame;
}

//projectile var
gravity=10;
time=0;
obj.xInt=obj._x;
obj.yInt=obj._y;

//projectile process
butt.onRelease=function(){
   rAngle=angle*(Math.PI/180);
   xIntSpeed=intSpeed*Math.cos(rAngle);
   yIntSpeed=intSpeed*Math.sin(rAngle);
   obj.onEnterFrame=function(){
         time+=(1/3);         
         obj.xTile=xIntSpeed*time;
         obj.yTile=(yIntSpeed*time)+((0.5)*gravity*time*time);
         obj._x=obj.xInt+obj.xTile;
         obj._y=obj.yInt+obj.yTile;
         obj._rotation+=15;
         if(obj._y>=620 || obj._x>=1120){
            time=0;
            obj._x=obj.xInt;
            obj._y=obj.yInt;
            delete obj.onEnterFrame;
            obj._rotation=angle;
         }
   }
}
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ✌ เมื่อ 07 พ.ค. 2006, 08:35 น.
เวลายิงแรงๆไปท้องฟ้า90องศาต้องรอลูกบอลตกลงมาก่อนค่อยกดอีกลูก  :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 07 พ.ค. 2006, 09:43 น.
 :14:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 07 พ.ค. 2006, 14:43 น.
อ้างคำพูดจาก: Bot.net เมื่อ 07 พ.ค. 2006, 08:35 น.
เวลายิงแรงๆไปท้องฟ้า90องศาต้องรอลูกบอลตกลงมาก่อนค่อยกดอีกลูก  :08:

คนจริง ใจต้องนิ่งครับ  :35:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 07 พ.ค. 2006, 14:46 น.
กลายเป็นโปรเจ็คไตลไปซะงั้น  :31:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 07 พ.ค. 2006, 14:46 น.
โอ้ย ไซน์คอสแทน  :32:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Ou! เมื่อ 07 พ.ค. 2006, 19:34 น.






ทำความรู้จักกับมันเอาไว้ เดี๋ยวโตขึ้นจะต้องสนิทกันมากกว่านี้ :40:


ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Zafire06 เมื่อ 07 พ.ค. 2006, 19:42 น.
เอาโค้ดไปทำตัว Converter ระหว่าง Celestial Coordinate System ได้ด้วยแฮะ  :42:

(แล้วการบ้านล่ะ  :05:)
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Layiji เมื่อ 07 พ.ค. 2006, 22:39 น.
เพิ่งจะเที่ยวกลับมาครับเดี๋ยวนั่งอ่านและทำตามครับขอบคุณครับ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 07 พ.ค. 2006, 22:39 น.
มันคืออะไรน่ะ  :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 08 พ.ค. 2006, 00:15 น.
... ไอ โคเลสเตอรอล ซิสเตม มันคืออะไรหน่ะ  :18:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 08 พ.ค. 2006, 11:11 น.
เซรีบลั่ม ซีฟีลิส อะไรว่ะ  :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X11 เมื่อ 09 พ.ค. 2006, 10:36 น.
เอาอย่างง่ายๆ ละกัน
http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9237
mv1.onEnterFrame=function() {
this._x-=3;
this._y-=1;
this._xscale-=0.5;
this._yscale-=0.5;
if(this._x<-20) {
this._x=290;
this._width=67;
this._height=67;
}
if(this._y<-20) {
this._y=270;
this._width=67;
this._height=67;
}
}
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: Ah! เมื่อ 09 พ.ค. 2006, 12:04 น.
ไว้จะมาอ่าน และทำส่งนะครับเฮีย

เิพิ่งกลับมาถึงบ้าน ไฟดับทั้งหมู่บ้านอีก
แบตก็จะหมดแล้วด้วยครับ
:42:

ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Layiji เมื่อ 10 พ.ค. 2006, 16:30 น.
โอเย ได้แล้ว
http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9268

right.onRollOver = function() {
aright.gotoAndPlay(2);
};
right.onRollOut = function() {
aright.gotoAndStop(1);
};
right.onPress = function() {
i = 0;
layiji.onEnterFrame = function() {
if (i<15) {
layiji._x += 2;
if (layiji._x>=520) {
layiji._x = 0;
}
i++;
} else {
delete layiji.onEnterFrame;
}
};
};
left.onRollOver = function() {
aleft.gotoAndPlay(2);
};
left.onRollOut = function() {
aleft.gotoAndStop(1);
};
left.onPress = function() {
i = 0;
layiji.onEnterFrame = function() {
if (i<15) {
layiji._x -= 2;
i++;
if (layiji._x<=0) {
layiji._x = 500;
}
} else {
delete layiji.onEnterFrame;
}
};
};
up.onRollOver = function() {
aup.gotoAndPlay(2);
};
up.onRollOut = function() {
aup.gotoAndStop(1);
};
up.onPress = function() {
i = 0;
layiji.onEnterFrame = function() {
if (i<15) {
layiji._y -= 2;
i++;
if (layiji._y<=-20) {
layiji._y = 420;
}
} else {
delete layiji.onEnterFrame;
}
};
};
down.onRollOver = function() {
adown.gotoAndPlay(2);
};
down.onRollOut = function() {
adown.gotoAndStop(1);
};
down.onPress = function() {
i = 0;
layiji.onEnterFrame = function() {
if (i<15) {
layiji._y += 2;
i++;
if (layiji._y>430) {
layiji._y = -20;
}
} else {
delete layiji.onEnterFrame;
}
};
};
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Layiji เมื่อ 10 พ.ค. 2006, 16:43 น.
ทำเพิ่มอีกหน่อยครับ เปลี่ยนเป็นปล่อยเมาส์แล้วหยุด
http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9271


right.onRollOver = function() {
aright.gotoAndPlay(2);
};
right.onRollOut = function() {
aright.gotoAndStop(1);
};
right.onPress = function() {
p = 3;
layiji.onEnterFrame = function() {
layiji._x += p;
if (layiji._x>510) {
layiji._x = -5;
}
};
};
right.onRelease = function() {
p = 0;
layiji._x += p;
};
left.onRollOver = function() {
aleft.gotoAndPlay(2);
};
left.onRollOut = function() {
aleft.gotoAndStop(1);
};
left.onPress = function() {
p = 3;
layiji.onEnterFrame = function() {
layiji._x -= p;
if (layiji._x<0) {
layiji._x = 500;
}
};
};
left.onRelease = function() {
p = 0;
layiji._x += p;
};
up.onRollOver = function() {
aup.gotoAndPlay(2);
};
up.onRollOut = function() {
aup.gotoAndStop(1);
};
up.onPress = function() {
p = 3;
layiji.onEnterFrame = function() {
layiji._y -= p;
if (layiji._y<-20) {
layiji._y = 420;
}
};
};
up.onRelease = function() {
p = 0;
layiji._y += p;
};
down.onRollOver = function() {
adown.gotoAndPlay(2);
};
down.onRollOut = function() {
adown.gotoAndStop(1);
};
down.onPress = function() {
p = 3;
layiji.onEnterFrame = function() {
layiji._y += p;
if (layiji._y>420) {
layiji._y = -20;
}
};
};
down.onRelease = function() {
p = 0;
layiji._y += p;
};


รอเฮีย x มาสอนต่อ  :43:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 11 พ.ค. 2006, 07:52 น.
รู้สึกคนเรียนจะเริ่มหมดแรง  :43:
เนื้อหาอาจจะไม่เหมาะสมกับประชากรในบอร์ดเท่าไหร่ แหะๆ...
ก่อนไปตอนต่อไป... มาแปะการบ้านข้อ 2 ที่บอกไว้คับ

การบ้าน

2) ให้ใช้ onEnterFrame กับ onRelease ทำปุ่มอย่างน้อย 3 ปุ่มขึ้นไปให้คุม 1 กรอบขึ้นไป ออกมาเป็น

พวกเว็บที่มีกรอบเยอะ ๆ อย่างเช่นกรอบส่วน banner content link และอื่นๆ แต่พอกดไปกรอบเหล่านี้มันเปลี่นไปมาน่ะครับ

เช่น

(http://img.f0nt.com/image/4011.jpeg)

ซึ่งมันไม่จะเป็นต้องเลือกตามลำตับนะครับ  คิดว่าทำ animate คงตายแน่เพราะต้องทำปุ่ม
1ไป2  1ไป3  1ไป4 
2ไป1  2ไป3  2ไป4
.....




properties ที่ใช้เพิ่มเติมในการทำการบ้าน คือ
_width หรือ _xscale สำหรับเพิ่ม/ลด ความกว้าง
_height หรือ _yscale สำหรับเพิ่ม/ลด ความสูง

ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Layiji เมื่อ 11 พ.ค. 2006, 08:58 น.
ฉิบหาย เจอมีดตัวเองแทงตัวเองซะแล้ว  :05:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: แมวเงียบ เมื่อ 11 พ.ค. 2006, 10:57 น.
 :05: ถึกไม่พอแน่เลยค่ะ

ทำไงล่ะนั่น - -"
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: 蓝月 (lán yuè) เมื่อ 11 พ.ค. 2006, 11:02 น.
(ซุ่มลูกเดียวค่ะ  :39:)
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: icez เมื่อ 11 พ.ค. 2006, 14:04 น.
การบ้านนี้ขอผ่านครับ  :39:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: นายโอ้เอ้ เมื่อ 11 พ.ค. 2006, 14:25 น.
ไม่ส่งการบ้านหลายงวดแล้ว ไว้จัดระเบียบความคิดได้เมื่อไหร่ค่อยส่งครับ  :39:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 11 พ.ค. 2006, 16:24 น.
 :30:

ไม่ว่างครับ :05:

The Match ก็ไม้่ได้ทำซักแอะ :05:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 11 พ.ค. 2006, 19:34 น.
หยั่งงี้ก็ลอกโค้ดจานท๊อปได้ดิคับ  :42:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X11 เมื่อ 12 พ.ค. 2006, 00:15 น.
คล้ายๆ แบบนี้เหรอ

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9294
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 12 พ.ค. 2006, 01:02 น.
อ้างคำพูดจาก: X11 เมื่อ 12 พ.ค. 2006, 00:15 น.
คล้ายๆ แบบนี้เหรอ
http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9294

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

ความจริงการบ้านตัวนี้ไม่ต่างกับที่ทำๆ กดปุ่มให้มันวิ่ง ขึ้น บน ซ้าย ขวาเท่าไหร่คับ
อาศัยหลักการเดียวกัน เพียงแต่เพิ่ม _width และ _height เข้าไป

จากตัวอย่างเดิมอันข้างล่างนี้... และจากเนื้อหา 3 ตอนที่ผ่านมา สามารถทำแบบนี้ได้แล้ว
ยกเว้นการ easing
ซึ่งจะเป็นตอนต่อไป...

http://f0nt.com/forum/index.php?action=dlattach;topic=5804.0;id=9076

แต่ที่ตั้งใจยกโจทย์นี้มาเป็นการบ้าน เพื่อให้แน่ใจว่าเข้าใจหลักการเล่นกับ properties การใช้ onEnterFrame คู่กับการกำหนดเงื่อนไข ผ่าน if คับ.... โค้ดที่จะทำการบ้านนี้ รับรองไม่ยาวกว่าที่ทำบังคับวิ่งขึ้นบน ซ้ายขวา เท่าไหร่เลย... ไม่ต้องถึกครับ  :12:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 12 พ.ค. 2006, 02:40 น.
อ้างคำพูดจาก: X Saint เมื่อ 12 พ.ค. 2006, 01:02 น.
จากตัวอย่างเดิมอันข้างล่างนี้... และจากเนื้อหา 3 ตอนที่ผ่านมา สามารถทำแบบนี้ได้แล้ว
ยกเว้นการ easing
ซึ่งจะเป็นตอนต่อไป...

เจ๋งงงงงงงงงงงงงงง :25: :25: :25:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Layiji เมื่อ 12 พ.ค. 2006, 10:07 น.
พยายามไม่ลอกครับ จะลองคิดเองดู แต่คงนานเลยล่ะครับ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 12 พ.ค. 2006, 10:43 น.
ขอถามนอกเรื่องนิดนึงนะครับ
สมมุติ instance name ของ mc ถูกเก็บในตัวแปรชื่อ newInsName ถ้าเราต้องการเข้าถึงตัวแปรหรือ Properties ของ instance ตัวนั้น เราต้องเรียกมันยังไงครับ
ผมลองใช้ newInsName.ชื่อตัวแปร หรือ newInsName._x แล้วมันเรียกไม่ออกอ่ะ  :05:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ✌ เมื่อ 12 พ.ค. 2006, 10:44 น.
ผ่านครับ(ผ่่านทุกการบ้าน :05:)
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 12 พ.ค. 2006, 14:37 น.
อ้างคำพูดจาก: Layiji เมื่อ 12 พ.ค. 2006, 10:07 น.
พยายามไม่ลอกครับ จะลองคิดเองดู แต่คงนานเลยล่ะครับ

กลับไปดูกระทู้เก่าก็ได้คับ.... คือ ยังไงก็จะออกมาไม่เหมือนกัน เพราะขาดส่วน easing
แล้วก็โครงสร้างจริงๆ ก็ควรจะคล้ายๆกับที่ทำ เคลื่อนที่บน ล่าง ซ้าย ขวา ที่ผ่านมา

อ้างคำพูดจาก: i-poon เมื่อ 12 พ.ค. 2006, 10:43 น.
ขอถามนอกเรื่องนิดนึงนะครับ
สมมุติ instance name ของ mc ถูกเก็บในตัวแปรชื่อ newInsName ถ้าเราต้องการเข้าถึงตัวแปรหรือ Properties ของ instance ตัวนั้น เราต้องเรียกมันยังไงครับ
ผมลองใช้ newInsName.ชื่อตัวแปร หรือ newInsName._x แล้วมันเรียกไม่ออกอ่ะ  :05:

ทำไมถึงอยากเก็บในตัวแปรเหรอคับ ?

ความจริงเก็บได้คับ... แต่พอดีโจทย์นี้ยังไม่ค่อยจำเป็นเท่าไหร่
แต่อธิบายก่อนคร่าวๆได้ว่า (เผื่ออยากใช้)
mc นั้น flash มองมันเป็น object
ในขณะที่ตัวแปรจะเก็บค่าเป็น integer จำนวนเต็ม char ตัวอักษร หรือ string ชุดตัวอักษร เป็นต้น
ดังนั้นการอ้างอิงแบบนั้นเลยทำไม่ได้ครับ

ดังนั้นเราต้องอ้างชื่อแบบ string โดยผ่านการเรียกแบบ object เช่น
ถ้า newInsName = "dot";

แล้ว mc นี้ dot วางอยู่ที่ Tiimeline หลัก
เราสามารถเรียกผ่านตัวแปรได้ในรูป

_root[newInsName]._x

เป็นต้นครับ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 12 พ.ค. 2006, 16:20 น.
เดี๋ยวก่อน... เดี๊ยว.... :07:

จะเปิดเทอมแล้ว
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 12 พ.ค. 2006, 23:30 น.
โอ้ว ขอบคุณมากครับ เพิ่งรู้ว่า =dot กับ ="dot" นี่มันต่างกันด้วยแฮะ  :08:

จริงๆแล้วอันนี้ไม่เกี่ยวกับการบ้านครับ ตั้งแต่ลุงท๊อปเริ่มสอนผมก็มันส์มือหัดมันไปเรื่อยๆ เจอข้อสงสัยเลยลองถามดูครับ  :22:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: ไร้รัก เมื่อ 13 พ.ค. 2006, 01:37 น.
xsaint ฟิตมาจากไหนเนี่ย นึกว้าแขวนนวมไปซะแล้ว ...
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 13 พ.ค. 2006, 14:08 น.
อ้างคำพูดจาก: ไร้รัก เมื่อ 13 พ.ค. 2006, 01:37 น.
xsaint ฟิตมาจากไหนเนี่ย นึกว้าแขวนนวมไปซะแล้ว ...

หึ หึ ลมอะไรพัดมาถึงนี่ ท่านแฟลชเทวะ :/
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 14 พ.ค. 2006, 04:02 น.
ใครเหรอครับนั่น  :08:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 14 พ.ค. 2006, 07:57 น.
เสร็จแล้ว!!!!  :32:

ลองมั่วๆทำให้มี easing ดู ไม่รู้มันถูกหลักการหรือเปล่านะครับ  :43:

http://upload.i-poon.com/flash/actionMove.swf

//แปะ code

อ้างอิง
   obj1.onEnterFrame=function(){
      obj1XSpeed=(o1X-obj1._x)/2;
      obj1YSpeed=(o1Y-obj1._y)/2;
      obj1WSpeed=(o1Width-obj1._width)/2;
      obj1HSpeed=(o1Height-obj1._height)/2;
      obj1._x+=obj1XSpeed;
      obj1._y+=obj1YSpeed;
      obj1._width+=obj1WSpeed;
      obj1._height+=obj1HSpeed;
   }
   obj2.onEnterFrame=function(){
      obj2XSpeed=(o2X-obj2._x)/2;
      obj2YSpeed=(o2Y-obj2._y)/2;
      obj2WSpeed=(o2Width-obj2._width)/2;
      obj2HSpeed=(o2Height-obj2._height)/2;
      obj2._x+=obj2XSpeed;
      obj2._y+=obj2YSpeed;
      obj2._width+=obj2WSpeed;
      obj2._height+=obj2HSpeed;
   }
   obj3.onEnterFrame=function(){
      obj3XSpeed=(o3X-obj3._x)/2;
      obj3YSpeed=(o3Y-obj3._y)/2;
      obj3WSpeed=(o3Width-obj3._width)/2;
      obj3HSpeed=(o3Height-obj3._height)/2;
      obj3._x+=obj3XSpeed;
      obj3._y+=obj3YSpeed;
      obj3._width+=obj3WSpeed;
      obj3._height+=obj3HSpeed;
   }
   obj4.onEnterFrame=function(){
      obj4XSpeed=(o4X-obj4._x)/2;
      obj4YSpeed=(o4Y-obj4._y)/2;
      obj4WSpeed=(o4Width-obj4._width)/2;
      obj4HSpeed=(o4Height-obj4._height)/2;
      obj4._x+=obj4XSpeed;
      obj4._y+=obj4YSpeed;
      obj4._width+=obj4WSpeed;
      obj4._height+=obj4HSpeed;
   }


pum1.onRelease=function(){
   o1X=224.4;
   o1Y=120;
   o1Width=219.1;
   o1Height=219.1;
   o2X=366.2;
   o2Y=120;
   o2Width=52.5;
   o2Height=219.1;
   o3X=224.4;
   o3Y=259.8;
   o3Width=219.1;
   o3Height=52.5;
   o4X=366.2;
   o4Y=259.8;
   o4Width=52.5;
   o4Height=52.5;
}

pum2.onRelease=function(){
   o1X=95;
   o1Y=214.2;
   o1Width=90;
   o1Height=90;
   o2X=156.5;
   o2Y=214.2;
   o2Width=21;
   o2Height=89.9;
   o3X=306;
   o3Y=139.6;
   o3Width=262.7;
   o3Height=238.5;
   o4X=243.6;
   o4Y=272.8;
   o4Width=387.1;
   o4Height=17.2;
}

pum3.onRelease=function(){
   o1X=48.3;
   o1Y=73;
   o1Width=40.6;
   o1Height=40;
   o2X=256.4;
   o2Y=160;
   o2Width=361.6;
   o2Height=214.1;
   o3X=48.3;
   o3Y=128.4;
   o3Width=40.6;
   o3Height=59.1;
   o4X=48.3;
   o4Y=215.7;
   o4Width=40.6;
   o4Height=102.7;
}
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X Saint เมื่อ 14 พ.ค. 2006, 13:20 น.
อ้างคำพูดจาก: i-poon เมื่อ 14 พ.ค. 2006, 07:57 น.
เสร็จแล้ว!!!!  :32:

ลองมั่วๆทำให้มี easing ดู ไม่รู้มันถูกหลักการหรือเปล่านะครับ  :43:


เสร็จแล้ว  :34:

แต่บอกไม่ต้องมี easing ก่อนไง  :34:

เดี๋ยวก็ไม่มีอะไรอธิบายตอนต่อไปหรอก  :34:  :34:

แต่ทำไมวิธีการมันไม่เหมือนกับที่อธิบายไปก่อนหน้านี้ 3 ตอนเลย  :34:  :34:  :34:

แต่จริงๆ ก็ได้ผลลัพธ์ถูกต้องนะคับ วิธีการยังไงก็ได้แหล่ะ  :42:

เก่งคับ  :12:

...

ว่าแต่... มีคนทำคนเดียวเองเหรอ  :39:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: Layiji เมื่อ 14 พ.ค. 2006, 13:27 น.
รอผมสักหน่อยนะ กำลังคิดวิธีการโดยไม่ลอกใครอยู่ครับ นานเลย
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 14 พ.ค. 2006, 16:00 น.
ผม... เอ่อ.... ทำอะไรอยู่วะ...  :42:

เดี๋ยวอาทิตย์จะงมมาส่งครับ
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 15 พ.ค. 2006, 00:46 น.
แต่ที่อธิบายไว้ 3 ตอนก่อนนั่นผมก็ยังคงมึนๆ จับทางไม่ค่อยถูกอยู่ดีครับ  :05:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: X11 เมื่อ 15 พ.ค. 2006, 13:25 น.
ไม่ easing ละกัน

http://f0nt.com/forum/index.php?action=dlattach;topic=5925.0;id=9377

border=3;
bx1.name1.text="1";
bx2.name1.text="2";
bx3.name1.text="3";
bx4.name1.text="4";
bx1size=array(294, 60);
bx2size=array(200, 113);
bx3size=array(90, 55);
bx4size=array(90, 55);

bx1._alpha=40;
bx2._alpha=40;
bx3._alpha=40;
bx4._alpha=40;

bx1._x=border;
bx1._y=border;
bx1._width=bx1size[0];
bx1._height=bx1size[1];

bx2._x=border;
bx2._y=border+bx1._height+border;
bx2._width=bx2size[0];
bx2._height=bx2size[1];

bx3._x=border+bx2._width+border;
bx3._y=border+bx1._height+border;
bx3._width=bx3size[0];
bx3._height=bx3size[1];

bx4._x=border+bx2._width+border;
bx4._y=border+bx1._height+border+bx3._height+border;
bx4._width=bx4size[0];
bx4._height=bx4size[1];

bx1.onRelease=function() {
bx1._alpha=100;
bx2._alpha=40;
bx3._alpha=40;
bx4._alpha=40;
_root.onEnterFrame=function() {
if(bx1._height<(bx1size[1]+20)) bx1._height+=1;
else if (bx1._height > (bx1size[1]+20)) bx1._height-=1;
if (bx1._width < bx1size[0]) bx1._width+=1;
else if (bx1._width > bx1size[0]) bx1._width-=1;
bx1._x=border;
bx1._y=border;

if(bx2._width < bx2size[0]) bx2._width+=1;
else if (bx2._width > bx2size[0]) bx2._width-=1;
//trace(bx2._width+'/'+bx2size[0]);
if(bx2._height < (bx2size[1]-20)) bx2._height+=1;
else if (bx2._height > (bx2size[1]-20)) bx2._height-=1;
bx2._x=border;
bx2._y=border+bx1._height+border;

if(bx3._width < bx3size[0]) bx3._width+=1;
else if (bx3._width > bx3size[0]) bx3._width-=1;
if(bx3._height < (bx3size[1]-20)) bx3._height+=1;
else if(bx3._height > (bx3size[1]-20)) bx3._height-=1;
bx3._x=border+bx2._width+border;
bx3._y=border+bx1._height+border;

if(bx4._width < bx4size[0]) bx4._width+=1;
else if (bx4._width > bx4size[0]) bx4._width-=1;
if (bx4._height < bx4size[1]) bx4._height +=1;
else if (bx4._height > bx4size[1]) bx4._height -=1;
bx4._x=border+bx2._width+border;
bx4._y=border+bx1._height+border+bx3._height+border;
}

}

bx2.onRelease=function() {
bx1._alpha=40;
bx2._alpha=100;
bx3._alpha=40;
bx4._alpha=40;
_root.onEnterFrame=function() {
if(bx1._height<(bx1size[1]-20)) bx1._height+=1;
else if (bx1._height>(bx1size[1]-20)) bx1._height-=1;
//trace(bx1._height+'/'+(bx1size[1]-20));
if (bx1._width < bx1size[0]) bx1._width+=1;
else if (bx1._width > bx1size[0]) bx1._width-=1;
bx1._x=border;
bx1._y=border;

if(bx2._width < bx2size[0]) bx2._width+=1;
else if (bx2._width > bx2size[0]) bx2._width-=1;
//trace(bx2._width+'/'+bx2size[0]);
if(bx2._height < (bx2size[1]+20)) bx2._height+=1;
else if (bx2._height > (bx2size[1]+20)) bx2._height-=1;
//trace(bx2._height+"/"+(bx2size[1]+20));
bx2._x=border;
bx2._y=border+bx1._height+border;

if(bx3._width < bx3size[0]) bx3._width+=1;
else if (bx3._width > bx3size[0]) bx3._width-=1;
if(bx3._height < (bx3size[1]+20)) bx3._height+=1;
else if(bx3._height > (bx3size[1]+20)) bx3._height-=1;
bx3._x=border+bx2._width+border;
bx3._y=border+bx1._height+border;

if(bx4._width < bx4size[0]) bx4._width+=1;
else if (bx4._width > bx4size[0]) bx4._width-=1;
if (bx4._height < bx4size[1]) bx4._height +=1;
else if (bx4._height > bx4size[1]) bx4._height -=1;
bx4._x=border+bx2._width+border;
bx4._y=border+bx1._height+border+bx3._height+border;
}

}

bx3.onRelease=function() {
bx1._alpha=40;
bx2._alpha=40;
bx3._alpha=100;
bx4._alpha=40;
_root.onEnterFrame=function() {
if(bx1._height<(bx1size[1]-20)) bx1._height+=1;
else if (bx1._height > (bx1size[1]-20)) bx1._height-=1;
if (bx1._width < bx1size[0]) bx1._width+=1;
else if (bx1._width > bx1size[0]) bx1._width-=1;
bx1._x=border;
bx1._y=border;

if(bx2._width < bx2size[0]) bx2._width+=1;
else if (bx2._width > bx2size[0]) bx2._width-=1;
//trace(bx2._width+'/'+bx2size[0]);
if(bx2._height < (bx2size[1]+20)) bx2._height+=1;
else if (bx2._height > (bx2size[1]+20)) bx2._height-=1;
bx2._x=border;
bx2._y=border+bx1._height+border;

if(bx3._width < bx3size[0]) bx3._width+=1;
else if (bx3._width > bx3size[0]) bx3._width-=1;
if(bx3._height < (bx3size[1]+20)) bx3._height+=1;
else if(bx3._height > (bx3size[1]+20)) bx3._height-=1;
bx3._x=border+bx2._width+border;
bx3._y=border+bx1._height+border;

if(bx4._width < bx4size[0]) bx4._width+=1;
else if (bx4._width > bx4size[0]) bx4._width-=1;
if (bx4._height < bx4size[1]) bx4._height +=1;
else if (bx4._height > bx4size[1]) bx4._height -=1;
bx4._x=border+bx2._width+border;
bx4._y=border+bx1._height+border+bx3._height+border;
}
}

bx4.onRelease=function() {
bx1._alpha=40;
bx2._alpha=40;
bx3._alpha=40;
bx4._alpha=100;
_root.onEnterFrame=function() {
if(bx1._height<bx1size[1]) bx1._height+=1;
else if (bx1._height > bx1size[1]) bx1._height-=1;
if (bx1._width < bx1size[0]) bx1._width+=1;
else if (bx1._width > bx1size[0]) bx1._width-=1;
bx1._x=border;
bx1._y=border;

if(bx2._width < bx2size[0]) bx2._width+=1;
else if (bx2._width > bx2size[0]) bx2._width-=1;
//trace(bx2._width+'/'+bx2size[0]);
if(bx2._height < bx2size[1]) bx2._height+=1;
else if (bx2._height > bx2size[1]) bx2._height-=1;
bx2._x=border;
bx2._y=border+bx1._height+border;

if(bx3._width < bx3size[0]) bx3._width+=1;
else if (bx3._width > bx3size[0]) bx3._width-=1;
if(bx3._height < (bx3size[1]-20)) bx3._height+=1;
else if(bx3._height > (bx3size[1]-20)) bx3._height-=1;
bx3._x=border+bx2._width+border;
bx3._y=border+bx1._height+border;

if(bx4._width < bx4size[0]) bx4._width+=1;
else if (bx4._width > bx4size[0]) bx4._width-=1;
if (bx4._height < bx4size[1]+20) bx4._height +=1;
else if (bx4._height > bx4size[1]+20) bx4._height -=1;
bx4._x=border+bx2._width+border;
bx4._y=border+bx1._height+border+bx3._height+border;
}
}

back.onRelease=function() {
bx1._alpha=40;
bx2._alpha=40;
bx3._alpha=40;
bx4._alpha=40;
_root.onEnterFrame=function() {
if(bx1._height<bx1size[1]) bx1._height+=1;
else if (bx1._height > bx1size[1]) bx1._height-=1;
if (bx1._width < bx1size[0]) bx1._width+=1;
else if (bx1._width > bx1size[0]) bx1._width-=1;
bx1._x=border;
bx1._y=border;

if(bx2._width < bx2size[0]) bx2._width+=1;
else if (bx2._width > bx2size[0]) bx2._width-=1;
//trace(bx2._width+'/'+bx2size[0]);
if(bx2._height < bx2size[1]) bx2._height+=1;
else if (bx2._height > bx2size[1]) bx2._height-=1;
bx2._x=border;
bx2._y=border+bx1._height+border;

if(bx3._width < bx3size[0]) bx3._width+=1;
else if (bx3._width > bx3size[0]) bx3._width-=1;
if(bx3._height < bx3size[1]) bx3._height+=1;
else if(bx3._height > bx3size[1]) bx3._height-=1;
bx3._x=border+bx2._width+border;
bx3._y=border+bx1._height+border;

if(bx4._width < bx4size[0]) bx4._width+=1;
else if (bx4._width > bx4size[0]) bx4._width-=1;
if (bx4._height < bx4size[1]) bx4._height +=1;
else if (bx4._height > bx4size[1]) bx4._height -=1;
bx4._x=border+bx2._width+border;
bx4._y=border+bx1._height+border+bx3._height+border;
}

}
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Ah! เมื่อ 15 พ.ค. 2006, 13:50 น.
 :05:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: นายโอ้เอ้ เมื่อ 15 พ.ค. 2006, 15:03 น.
 :44: เห็นแล้วขี้เกียจเลย
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 17 พ.ค. 2006, 07:51 น.
ยาวโครต  :32:

อ้างคำพูดจาก: เต่า เมื่อ 14 พ.ค. 2006, 16:00 น.
ผม... เอ่อ.... ทำอะไรอยู่วะ...  :42:

เดี๋ยวอาทิตย์จะงมมาส่งครับ

วันอังคารแล้วนี่  :34:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: jojobaoil เมื่อ 18 พ.ค. 2006, 16:24 น.
มาแอบเก็บครัวามรู้ครับ อิอิอิอิ.. :43:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: X Saint เมื่อ 19 พ.ค. 2006, 00:34 น.
เหอะ....  :08: สงสัยจะยากไป.... หายหมดเลย  :43:

เดี๋ยวมาเฉลยการบ้านข้อนี้นะคับ.. เพราะคิดว่าจะได้เป็นฐานสำหรับตอนต่อไป
(ยังจะมีอีกเหรอเนี่ย  :38:)

(ไหนๆทำไปแล้ว ให้มันจบๆซีซันหน่อยละกันนะ  :42:)
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Layiji เมื่อ 19 พ.ค. 2006, 00:39 น.
เอ้ยอย่าเพิ่งจบนะครับ ผมกำลังคิดอยู่

ถ้ายังไงขอรีเควสเรื่อง load movie กับ ติดต่อ php สักติ๊ดได้มั้ยครับ  :02:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: Zafire06 เมื่อ 19 พ.ค. 2006, 00:41 น.
:08:

(นั่งทำตาปริบๆ ไม่รู้เรื่อง)
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 19 พ.ค. 2006, 03:35 น.
กำลังรอติดตามตอนต่อไปอยู่เช่นกันครับ  :12:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 19 พ.ค. 2006, 05:35 น.
เปิดเทอม ม.4 มันยุ่งขนาดนี้เลย...  :05:

จะเปิดคอมก็ยังไม่มีเวลาอู้เข้าบอร์ดฟ๐นต์เลยครับ...
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: saa3 เมื่อ 19 พ.ค. 2006, 19:19 น.
อ้างคำพูดจาก: เต่า เมื่อ 19 พ.ค. 2006, 05:35 น.
เปิดเทอม ม.4 มันยุ่งขนาดนี้เลย...  :05:

จะเปิดคอมก็ยังไม่มีเวลาอู้เข้าบอร์ดฟ๐นต์เลยครับ...

ชะตากรรมเดียวกันแล้วล่ะ หนักฉิบหาย :39:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: i-poon เมื่อ 20 พ.ค. 2006, 01:22 น.
อ้างคำพูดจาก: เต่า เมื่อ 19 พ.ค. 2006, 05:35 น.
จะเปิดคอมก็ยังไม่มีเวลาอู้เข้าบอร์ดฟ๐นต์เลยครับ...

แล้วนี่อยู่ใน board พันทิพรึ๊ไง  :26:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterF
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 21 พ.ค. 2006, 11:05 น.
ตอนนี้ไม่ได้เปิดคอมครับ เลยอู้เข้าบอร์ดฟ๐นต์ได้  :42:
ชื่อเรื่อง: Re: AS ตอนที 3:วิ่งยาวๆกับ enterFrame
โพสต์โดย: iannnnn เมื่อ 29 พ.ค. 2006, 07:23 น.
จ๊าก เพิ่งเจอจู๋นี้
อะไรจะขนาดไหนจะขนาดนู้นจะขนาดนี้ครับลุงงงงง :07:




เดี๋ยวหัดมั่งครับ เพิ่งเคลียร์งานเสร็จ 1 ชิ้น (ค่าจ้างแค่กินข้าวได้ 2-3 วัน :05: )
แต่เดี๋ยวขอญาตหัดหลังเดอะแหม็ดครับ