ฟอนต์ฟอรั่ม

F0NT Community (เก่า) => ห้องคอม => ห้องแฟลช => โพสต์ถูกเริ่มโดย: thaPIXIE เมื่อ 01 ส.ค. 2007, 02:14 น.

ชื่อเรื่อง: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: thaPIXIE เมื่อ 01 ส.ค. 2007, 02:14 น.
http://img2.f0nt.com/flash/ad2e218b18e0d1f5c1e750107ec681f6.swf

ขอบังอาจเจ้าของสวนขายมะพร้าวห้าวเอามัน... :21:

อธิบายคอนเซ็บต์นะครับ เรื่อง code ถ้ามีเรียกร้องค่อยตามมาแปะ นะนะ...

ตอแรกก็สร้าง mc ที่เป็นดาวขึ้นมา

สั่ง duplicate ด้วย loop for ตามจำนวนดาวที่ต้องการ

ทุกครั้งที่ duplicate ก็กำหนดทิศการเคลื่อนที ่โดยให้มัน random ค่าขึ้นมาแล้วบวกซ้ำๆค่า x และ y ของ mc ดาวแต่ละดวง(ใช้ onEnterFrame ในการสั่งงานซ้ำๆก็ได้)

มีเงื่อนไขตรวจสอบการชนขอบโดยอ้างจาก เมื่อดาวมีตำแหน่งในแกนนอนมากกว่าหรือเท่ากับความกว้างของ stage หรือ ดาวมีตำแหน่งในแกนนอนน้อยกว่าหรือเท่ากับ 0 เป็นการตรวจการชนขอบซ้ายขวา และเมื่อดาวมีตำแหน่งในแกนตั้งน้อยกว่าหรือเท่ากับ 0 หรือดาวมีตำแหน่งในแนวแกนตั้งมากกว่าหรือเท่ากับความสูงของ stage ก็ให้ค่าที่ random มาของแต่ละแกนติดลบเสีย ชนขอบไหนก่อนก็กลับค่าแกนนั้นก่อน

ลองดูครับ หนุกดีนะ ทำได้แล้วยิ้มคนเดียวทั้งวัน ฮื้มมม :40:

ปล.ที่เห็นดาวหมุนได้เพราะผมก็ random ค่าขึ้นมาแล้วบวกองศาเพิ่มไปเรื่อยๆเอาเหมือนกัน
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: ดาเฉยๆ เมื่อ 01 ส.ค. 2007, 02:16 น.
สวยจัง  :25:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: iannnnn เมื่อ 01 ส.ค. 2007, 02:49 น.
จรูญจรัสรัศมีพราว พร่างพร้อย :25:+
(เพิ่งอ่านจบตะกี้เลย)
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: 蓝月 (lán yuè) เมื่อ 01 ส.ค. 2007, 02:52 น.
 :25: :25: :25: :25: :25: :25: :25: อร๊ายยยยย ชอบบบบบบบบบบบบบบบบบบบบ
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: จักรี เมื่อ 01 ส.ค. 2007, 09:09 น.
มีใครขอให้แปะโค้ดไปรึยัง 


งั้นผมขอ
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: WuTtY เมื่อ 01 ส.ค. 2007, 13:40 น.
ขออนุญาติเอา code มาแป๊ะ นะครับ พอดีกำลังหัด flash แล้วเลยเอาไปลองเขียนตามดู
mc ที่เป็นรูปดาวผมใช้มันอยู่กลาง mc ของดาวนะครับ เลยใช้ width/2 และ height/2 ทั้งหมดถ้าใครรูปดาวไม่ได้อยู่กลาง mc ต้องคำนวณใหม่เองนะ

function animation() {
   this._rotation += this.rotation // หมุนทุกครั้ง ตามองศาที่ set ไว้
   if (this._x < (this._width/2) || this._x > Stage.width-(this._width/2) ) {
      this.x *= -1; // กำหนดค่า x ใหม่ทุกครั้งที่มีการชนขอบซ้ายและขวา
   }
   if ( this._y < (this._height/2) || this._y > Stage.height-(this._height/2) ) {
      this.y *= -1; // กำหนดค่า y ใหม่ทุกครั้งที่มีการชนขอบบนและล่าง
   }
   this._x += this.x; // เลื่อนดาวตามสมควร
   this._y += this.y;   
}

// function กำหนดค่าเริ่มต้นให้ star
function initStar(mc:MovieClip) {
   mc.x = randRange(-15, 15); // กำหนดค่าที่จะเลื่อน ยังไม่ได้เลื่อนจริง ๆ นะ
   mc.y = randRange(-15, 15);
   mc.rotation = randRange(5,10); // กำหนดค่าที่จะหมุน
   mc._alpha = randRange(20,100); // กำหนด alpha
   mc._xscale = mc._yscale = randRange(20,100); // กำหนดขนาด
   mc._x = randRange(0+(mc._width/2), Stage.width-(mc._width/2)); // กำหนดค่าเริ่มต้นที่จะวางใน stage
   mc._y = randRange(0+(mc._height/2), Stage.height-(mc._height/2));
   mc.onEnterFrame = animation; // กำหนดว่าให้ onEnterFrame ไปทำ function animation
}

// function random ค่า เอามาจากใน help สะดวกดี กำหนด min max ได้เลย
function randRange(min:Number, max:Number):Number {
    var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
    return randomNum;
}

// วนลูปสร้างดาว 50 อัน พร้อมทั้งกำหนดค่าเริ่มต้นให้มันด้วย
for(i=1;i<50;i++) {
   this.attachMovie("star", "mc"+i, this.getNextHighestDepth()); // mc ที่อยู่ใน library ผมชื่อ star นะครับ
   initStar(this["mc"+i]);
}

ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: นายโอ้เอ้ เมื่อ 01 ส.ค. 2007, 13:54 น.
อ้างคำพูดจาก: thaPIXIE เมื่อ 01 ส.ค. 2007, 02:14 น.
http://img2.f0nt.com/flash/ad2e218b18e0d1f5c1e750107ec681f6.swf


ดาวดวงมุมซ้านบน อยู่นิ่งไม่ขยับไปไหนเลยครับ อย่างนี้เรียก bug ได้มั้ยครับ  :43:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: Ah! เมื่อ 01 ส.ค. 2007, 14:09 น.
เรียกว่า starbug ครับ
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: จั๊วจ่ะ :) เมื่อ 01 ส.ค. 2007, 14:20 น.
 :25: พี่เป็นร้านกาแฟใช่มั้ยคะ
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: heart เมื่อ 01 ส.ค. 2007, 14:26 น.
มันเกิดจากว่าพี่เค้าเขียนแรนดอมความเร็ว

แต่ดาวดวงนั้นมัดหยุดเพราะมัรนแรนดอมความเร็วได้ใกล้เคียง หรือเท่ากับ 0
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: thaPIXIE เมื่อ 01 ส.ค. 2007, 14:42 น.
หวาวว... wutty OOP นี่นา... :26: เจ๋งแฮะ :12:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: WuTtY เมื่อ 01 ส.ค. 2007, 14:50 น.
เป็นลูกครึ่ง oo กับ function ครับ  :33: :33:

ชอบ function ใน flash มาก ๆ ๆ ครับ มันเป็น pointer หมดเลย เลยเขียนแบบ
mc.onEnterFrame = animation; แบบนี้ได้ แถมไม่ใช้ delete mc.onEnterFrame ได้อีกต่างหาก  :12: :12:

แต่มันไม่ค่อยถูกหลัก oo เท่าไหร่นะ แต่ชอบบบบบบบ  :02: :02:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: i-poon เมื่อ 01 ส.ค. 2007, 15:30 น.
สวยชะมัด !!

มีวิธีทำให้มันโต้ตอบกับ mouse ได้ไหมครับ แบบว่าเอา mouse ชนแรงๆ ดาวก็กระเด็นไปแรงๆ แบบนี้อ๊ะ
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: WuTtY เมื่อ 01 ส.ค. 2007, 15:51 น.
ไม่ค่อยเข้าใจว่าชนแรง ๆ แบบไหนน่ะ

เอาเป็นลากแรง ๆ แล้วกัน

เพิ่ม 2 function
function startMove() {
   this.startPointX = this._x;
   this.startPointY = this._y;
   this.startDrag();
   delete this.onEnterFrame;
}

function stopMove() {
   this.x = (this._x - this.startPointX)/3; // เปลี่ยนค่า /3 เป็นอื่น ๆ ก็ได้ ถ้าไม่ / มันจะวิ่งไวมาก ๆ
   this.y = (this._y - this.startPointY)/3;
   this.stopDrag();
   this.onEnterFrame = animation;
}

แล้วก็แก้ function initStar เป็นตามนี้

function initStar(mc:MovieClip) {
   mc.x = randRange(-15, 15); // กำหนดค่าที่จะเลื่อน ยังไม่ได้เลื่อนจริง ๆ นะ
   mc.y = randRange(-15, 15);
   mc.rotation = randRange(5,10); // กำหนดค่าที่จะหมุน
   mc._alpha = randRange(20,100); // กำหนด alpha
   mc._xscale = mc._yscale = randRange(100,100); // กำหนดขนาด
   mc._x = randRange(0+(mc._width/2), Stage.width-(mc._width/2)); // กำหนดค่าเริ่มต้นที่จะวางใน stage
   mc._y = randRange(0+(mc._height/2), Stage.height-(mc._height/2));
   mc.onEnterFrame = animation; // กำหนดว่าให้ onEnterFrame ไปทำ function animation
   mc.onPress = startMove;
   mc.onRelease = mc.onReleaseOutside = stopMove;
}
// เพิ่ม 2 บรรทัดล่าง ให้กดที่ดาว และ ปล่อยดาว ทำอะไร


ลืมไปนิดนึง
mc._xscale = mc._yscale = randRange(100,100); // กำหนดขนาด
แก้เป็น 20, 100 นะ เมื่อกี้ แก้แ้ล้วลืมแก้กลับ

แบบนี้มันจะไม่ดีอยู่นิดนึงคือถ้าปาแรง ๆ มันจะวิ่งไม่หยุดเลยกดอีกทีลำบากมา  :05:
ควรไปแก้้ใน function animation ให้มันวิ่งช้าลงเรื่อย ๆ ด้วย แต่ขี้เกียจทำล่ะ  :43: :43:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: นายโอ้เอ้ เมื่อ 01 ส.ค. 2007, 15:57 น.
 :25: รวดเร็ว ทันใจ
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: i-poon เมื่อ 01 ส.ค. 2007, 17:11 น.
ผมเปิดไม่ได้แหละ
ขึ้นว่า Unexpect file format ครับ  :16:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: heart เมื่อ 01 ส.ค. 2007, 17:18 น.
อันนี้ก็ยังไม่ OO อะพี่โป้ง

OO เพียวเลยต้องสร้างคลาสด้วย อย่าลืมจิ

อันนี้ไม่มีคลาส
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: จักรี เมื่อ 01 ส.ค. 2007, 17:44 น.
งั้นผมเปิดห้องแล้ว ใครจะไปกับผมบ้าง
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: เต่ามาก เมื่อ 01 ส.ค. 2007, 18:13 น.
กรี๊ด  :25:

ผมได้ยินคำว่า OOP แล้วนึกถึงพี่เหน่ง Ruby รางรถไฟขานั้นอ่ะ  :05:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: thaPIXIE เมื่อ 01 ส.ค. 2007, 18:22 น.
อ้างคำพูดจาก: heart เมื่อ 01 ส.ค. 2007, 17:18 น.
อันนี้ก็ยังไม่ OO อะพี่โป้ง

OO เพียวเลยต้องสร้างคลาสด้วย อย่าลืมจิ

อันนี้ไม่มีคลาส

:26:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: iannnnn เมื่อ 01 ส.ค. 2007, 18:26 น.
ต้องเฟิร์สคลาสเท่านั้น :11:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: น้องสุกน้องใส เมื่อ 01 ส.ค. 2007, 18:30 น.
สวยมากเลยค่ะ  :25:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: นายโอ้เอ้ เมื่อ 01 ส.ค. 2007, 18:31 น.
อ้างคำพูดจาก: จักรี เมื่อ 01 ส.ค. 2007, 17:44 น.
งั้นผมเปิดห้องแล้ว ใครจะไปกับผมบ้าง


สนใจเขาหน่อยครับ  :25:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: น้องสุกน้องใส เมื่อ 01 ส.ค. 2007, 18:31 น.
 :48: :48: :48: :48: :48:
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: จักรี เมื่อ 01 ส.ค. 2007, 18:54 น.
 :11:


oop นี่ไม่เจี้ยมจริงๆนะครับ เป๋กลับให้มันรู้แล้วรู้รอด
ชื่อเรื่อง: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: WuTtY เมื่อ 01 ส.ค. 2007, 22:31 น.
 :43: :43:
ชื่อเรื่อง: ตอบ: Re: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: น้องลูกซอง เมื่อ 04 มี.ค. 2008, 05:22 น.
อ้างคำพูดจาก: heart เมื่อ 01 ส.ค. 2007, 14:26 น.
มันเกิดจากว่าพี่เค้าเขียนแรนดอมความเร็ว

แต่ดาวดวงนั้นมัดหยุดเพราะมัรนแรนดอมความเร็วได้ใกล้เคียง หรือเท่ากับ 0


ผมสงสัยว่า ถ้ามันแรนดอม แล้วทำไมมันเป็นทุกๆครั้งเลย อะคับ  :46:
ชื่อเรื่อง: ตอบ: เดือนช่วงดวงเด่นฟ้า ดาดาว
โพสต์โดย: KapomMan เมื่อ 04 มี.ค. 2008, 15:23 น.
ผมว่ามันเป็นตัวต้นฉบับที่เอาไว้ duplicateMovieClip นะครับเลยไม่โดน script สั่งให้วิ่ง ^^"