ฟอนต์ฟอรั่ม

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

ชื่อเรื่อง: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 26 พ.ค. 2006, 13:04 น.
ก่อนอื่นมาเฉลยครับ... ทิ้งไว้นานมาก  :08:
โดยครึ่งหลังของการเฉลยจะเป็นเนื้อหาของตอนใหม่นี้ด้วย

เริ่มจากโครงสร้างเดิมในหน้าแรกที่เหมือนจะเข้าใจ และทำได้ทุกคนนะคับ

อ้างอิงbutt.onRelease = function() {
   box.onEnterFrame = function() {
      if(ตรวจสอบเงื่อนไขในการเคลื่อนที่เสร็จ) {
              เพิ่ม/ลบ ค่าตำแหน่ง (ความกว้าง สูง)
      } else {
         delete box.onEnterFrame;
      }
   }
}

ของเดิมเราใช้ i นับ ว่าทำกี่รอบ ทำครบแล้วจึงหยุด
แต่คราวนี้เรามีเงื่อนไขใหม่ คือ มันเดินไปถึงตำแหน่งที่กำหนด (เปลี่ยนขนาดไปถึงขนาดที่กำหนด) แล้วจึงหยุด

ดังนั้น

จึงขอเพิ่มส่วนกำหนดเป้าหมายเข้าไป ก่อนที่จะเริ่ม onEnterFrame นะคับ.. โดยในที่นี้เราจะมี 4 คุณสมบัติ หรือ properties เสมอ เพราะเราจะเปลี่ยนทั้ง x, y, width และ height ซึ่งจะรวมไปถึงในส่วน เพิ่ม/ลบ ตำแหน่งด้วย ก็จะส่งผลให้มี 4 ค่า 4 บรรทัดไปด้วย

ก็จะได้โค้ดออกมาประมาณนี้

อ้างอิงbutt1.onRelease = function() {
   boxA.tWidth=60;
   boxA.tHeight=120;
   boxA.tX=120;
   boxA.tY=50;

   boxA.onEnterFrame = function() {
      if(ตรวจสอบเงื่อนไขในการเคลื่อนที่เสร็จ) {
              this._width+=condW;
              this._height+=condH;
              this._x+=condX;
              this._y+=condY;

      } else {
              delete box.onEnterFrame;
      }
   }
}

ตอนนี้ติดอยู่ 2 ส่วน คือ ส่วนเงื่อนไข และ พวก cond ทั้ง 4 ตัว ที่จะเป็นตัวกำหนดว่าจะมีการเปลี่ยนแปลงทีละกี่ pixel

มาดูส่วน cond ทั้ง 4 ตัวก่อน

จากเดิมที่เราทำปุ่มขวา เราใช้ + ปุ่มซ้ายเราใช้ -
กรณีนี้กรอบเราอาจจะวิ่งไปซ้าย หรือ ขวาก็ได้ แล้วแต่ค่าเป้าหมายที่กำหนด เทียบกับตำแหน่งปัจจุบันที่มันอยู่.... ถูกมั๊ยครับ ?
ทำยังไงถึงจะรู้ว่าตำแหน่งปัจจุบัน เลื่อนไปตำแหน่งปลายทาง จะเป็น + หรือ -

ลองใช้ if ดูครับ

อ้างอิงif(this._x>this.tX) { return -1;}
else if(this._x<this.tX) { return 1;}
else { return 0;}

แต่ว่าเรามี 4 ค่า ก็ต้องเปรียบเทียบทั้ง 4 ค่าสิ... มันจะทำให้ โค้ดเฉพาะส่วนนี้กลายเป็น 4 x 3 บรรทัดไป ทั้งๆที่ลักษณะโค้ดซ้ำๆกัน
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 26 พ.ค. 2006, 13:05 น.
ดังนั้นเราจึงมาย่อรูป โดยใช้ประโยชน์จากฟังก์ชั่นครับ

แยกส่วน 3 บรรทัดที่แล้ว เป็นฟังก์ชั่น ชื่อ compr

อ้างอิงfunction compr(org, des) {
    if(org>des) { return -1;}
    else if(org<des) { return 1;}
    else { return 0;}
}

สังเกตว่าผมเปลี่ยน this._x เป็น org และ this.tX เป็น des... เพราะเมื่อเรากำหนดฟังก์ชั่นแล้ว เราต้องกำหนดตัวแปรเพื่อมาเป็นตัวกลางส่งถ่าย
ตัวแปรทั้ง 4 ตัว เลยสามารถผ่านเข้ามาทาง org และ des เพื่อใช้งานในสูตรเดียวกันได้

ดังนั้นเราจะได้โค้ดส่วนเดิมเป็น

อ้างอิงbutt1.onRelease = function() {
   ส่วนกำหนดค่าเหมือนข้างบน
   boxA.onEnterFrame = function() {
      if(ตรวจสอบเงื่อนไขในการเคลื่อนที่เสร็จ) {
              this._width+=10*compr(this._width, this.tWidth);
              this._height+=10*compr(this._height, this.tHeight);
              this._x+=5*compr(this._x, this.tX);
              this._y+=5*compr(this._y, this.tY);

      } else {
              delete box.onEnterFrame;
      }
   }
}

เหลือที่เดียวแล้ว เงื่อนไขที่จะให้มันเลิกทำซ้ำ ก็คือ .... เมื่อค่าทั้ง 4 ไปถึงเป้าหมายแล้ว
เราจึงใช้การเปรียบเทียบแบบ "หรือ" ซึ่งใช้สัญลักษณ์ || แทน

อ้างอิงfunction compr(org, des) {
    if(org>des) { return -1;}
    else if(org<des) { return 1;}
    else { return 0;}
}

butt1.onRelease = function() {
   ส่วนกำหนดค่า เหมือนข้างบน
   boxA.onEnterFrame = function() {
      if(this._width!=this.tWidth||this._height!=this.tHeight||this._x!=this.tX||this._y!=this.tY) {
              ส่วนเพิ่ม/ลดค่า เหมือนข้างบน
      } else {
              delete box.onEnterFrame;
      }
   }
}

เสร็จแล้ว ยัตต้า !









Option:
เราสามารถใช้ if เปรียบเทียบได้แบบตัวอย่างข้างบน
แต่เราสามารถเอาสมการคณิตศาสตร์ ม.ปลาย มาเทียบได้เพียงสมการเดียว จะมีรูปที่ไว้สร้างรูปแบบนี้ (เรียกว่าไรไม่รู้ ผมลืม)
x-y/|x-y|
รูปแบบนี้จะทำให้เราได้ค่าออกมาเป็น 1 หรือ -1 เท่านั้น... เราก็จะรู้ว่า อันไหนมากกว่า หรือน้อยกว่ากัน แล้วเอาค่านั้นไปคูณกับความเร็ว หรือจำนวน pixel ที่ต้องการให้มันเลื่อนไป

ดังนั้นเฉพาะค่า x เราจะได้โค้ดออกมาในรูป (10 คือจำนวน pixel ที่ต้องการให้มันเลื่อนทีละ...)

อ้างอิงparseInt((this._tX-this._x)/Math.abs(this._tX-this._x));
[/color]
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 26 พ.ค. 2006, 13:07 น.
จริงๆแล้วยังไม่เสร็จ เพราะเรายังมีแค่ ปุ่มเดียว กรอบเดียว... จะยกตัวอย่างให้ทำเป็นแบบ 2 ปุ่ม 2 กรอบ

ซึ่งความจริงเราก็เอาของเดิมมา copy paste แล้วก็เพิ่มเข้าไป ส่วน boxA ก็จะมี boxB เพิ่มมาอีก 4 บรรทัด แล้วทั้ง butt1 ก็จะเพิ่มมาอีกทั้งชุดอีก 1 อัน
ถ้ามี 4 ปุ่ม โค้ดก็จะยาวเฟื้อยเลย... ทั้งๆที่มันซ้ำๆกัน... ดังนั้นมาย่อดีกว่า

ส่วนที่จะซ้ำจริงๆคือเฉพาะส่วน onEnterFrame แต่ส่วนที่กำหนดค่าเป้าหมาย 4 บรรทัดนั้นเราย่อไม่ได้ เพราะมันไม่ซ้ำ (ถึงแม้จะดูหน้าตาคล้ายกันก็จริง)
ดังนั้นเราจะแยกส่วน onEnterFrame ทั้งยวงออกไปเป็นฟังก์ชั่นต่างหาก

อ้างอิงfunction moveBox(bx) {
   bx.onEnterFrame = function() {
      if(this._width!=this.tWidth||this._height!=this.tHeight||this._x!=this.tX||this._y!=this.tY) {
              ส่วนเพิ่ม/ลดค่า เหมือนข้างบน
      } else {
              delete bx.onEnterFrame;
      }
   }
}

ส่วนที่อยู่ในปุ่มก็จะเหลือ

อ้างอิงbutt1.onRelease = function() {
   boxA.tWidth=60;
   boxA.tHeight=120;
   boxA.tX=120;
   boxA.tY=50;
   boxB.tWidth=60;
   boxB.tHeight=60;
   boxB.tX=50;
   boxB.tY=50;
   moveBox(boxA);
   moveBox(boxB);

}

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

อ้างอิงfunction compr(org, des) {
    if(org>des) { return -1;}
    else if(org<des) { return 1;}
    else { return 0;}
}

function moveBox(bx) {
   bx.onEnterFrame = function() {
      if(this._width!=this.tWidth||this._height!=this.tHeight||this._x!=this.tX||this._y!=this.tY) {
              this._width+=10*compr(this._width, this.tWidth);
              this._height+=10*compr(this._height, this.tHeight);
              this._x+=5*compr(this._x, this.tX);
              this._y+=5*compr(this._y, this.tY);
      } else {
              delete bx.onEnterFrame;
      }
   };
}

butt1.onRelease = function() {
   กำหนดค่า
   moveBox(boxA);
   moveBox(boxB);
}

butt2.onRelease = function() {
   กำหนดค่า
   moveBox(boxA);
   moveBox(boxB);   
}

เหมือนจะยาว แต่ความจริงไม่ยาวเลย เพราะมีแต่ส่วนกำหนดค่าตัวแปรที่เปลืองบรรทัดอยู่เท่านั้นเอง
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 26 พ.ค. 2006, 13:07 น.
ออกมาเป็นแบบนี้

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


ดาวน์โหลดไฟล์ FLA (http://f0nt.com/forum/index.php?action=dlattach;topic=6169.0;id=9511)
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: นายโอ้เอ้ เมื่อ 26 พ.ค. 2006, 23:26 น.
 :31:

อ่านแล้วไฟดับเลย
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 26 พ.ค. 2006, 23:44 น.
อ๊ะเพิ่งเห็น กำลังทำตามอยู่เลยครับ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 27 พ.ค. 2006, 00:16 น.
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 26 พ.ค. 2006, 23:26 น.
:31:

อ่านแล้วไฟดับเลย

:44:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Ah! เมื่อ 27 พ.ค. 2006, 00:18 น.
อ่านแล้วไฟลุกโชนครับ

ขอก๊อปไว้ก่อน ว่างแล้วจะอ่านครับ
ขอบคุณครับ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: i-poon เมื่อ 27 พ.ค. 2006, 00:32 น.
สายไปซะแล้วครับ
ผมลืมบทแรกๆไปหมดแล้ว  :05:

ไม่เป็นไร เดี๋ยวนั่งอ่านใหม่แต่ต้น  :32:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Zafire06 เมื่อ 27 พ.ค. 2006, 00:34 น.
อ่านแล้ว ไฟไหม้เลยครับ
ไหม้จนหมดเลย
:05:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: iannnnn เมื่อ 27 พ.ค. 2006, 01:06 น.
ซวยแล้ว ดาวมันขึ้นอันนี้ก่อน


เดี๋ยวไปอ่านตอน 2-3 แล้วจะกลับมาอ่านใหม่ครับ
ท่าทางน่าระทึกใจมาก
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 27 พ.ค. 2006, 01:35 น.
อ้างคำพูดจาก: iannnnn เมื่อ 27 พ.ค. 2006, 01:06 น.
ท่าทางน่าระทึกใจมาก
:34:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: ♥ ชายเต่า ♥ เมื่อ 27 พ.ค. 2006, 06:42 น.
แฮ่ๆ...  :42:

แว๊ป...
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: แมวเงียบ เมื่อ 30 พ.ค. 2006, 20:17 น.
ทำใจได้แล้วจะอ่านนะคะ
แปีบนึง :05:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 30 พ.ค. 2006, 20:43 น.
มายก้อด พยายามทำตามยังยากเลย ครึ่งนึงแล้วครับ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 02 มิ.ย. 2006, 22:05 น.
ได้แล้วครับ
http://f0nt.com/forum/index.php?action=dlattach;topic=6169.0;id=9584

เอ่อ ผมสงสัยอย่างครับ คือว่าถ้าหาว่าเปลี่ยนสูตรตรงนี้
  this._width+=10*compr(this._width, this.tWidth);
              this._height+=10*compr(this._height, this.tHeight);
              this._x+=5*compr(this._x, this.tX);
              this._y+=5*compr(this._y, this.tY)


เฉพาะตัวเลขหน้าเครื่องหมาย คูณ เพื่อต้องการให้มันเคลื่อนที่เร็วกว่านี้ พอดีลองเปลี่ยนแล้วปรากฎว่า มันสั่นระริกๆ น่ะครับ แล้วเราจะรู้ได้ยังไงว่ามันจะไม่สั่น
http://f0nt.com/forum/index.php?action=dlattach;topic=6169.0;id=9585




ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 03 มิ.ย. 2006, 01:06 น.
จากสูตรนี้

this._x+=5*compr(this._x, this.tX);

ในส่วนของฟังก์ชั่น compr ถ้าลองไล่กลับไปดู เราจะได้ค่าเป็น 1 หรือ -1 หรือ 0 เท่านั้น
ซึ่งใช้กำหนดทิศทางคับ ส่วน ตัวคูณ ใช้เพื่อกำหนดจำนวน pixel

ดังนั้น 5 มันจึงเป็นค่า speed จริงๆอย่างที่เข้าใจ ยิ่งมาก ก็ยิ่งขยับทีละเยอะๆ

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

นั่นเลยเป็นข้อจำกัดของการกำหนดเงื่อนไขการตรวจสอบให้หยุดแบบนี้... ซึ่งมันเข้าใจง่าย เพราะตรงไปตรงมาว่าถึงจุดก็หยุด... แต่สามารถสร้างเงื่อนไขเพิ่มความรัดกุมได้ เช่น ถ้าค่าตำแหน่งที่วิ่งไปแล้วมีค่าความต่างน้อยกว่า speed ก็ให้มันเลื่อนไปที่ตำแหน่งปลายทางเป๊ะๆ จะได้หยุดเลย เป็นต้นครับ....
(ตรงนี้จะทำให้โค้ดยาวขึ้นและเพิ่มความงงเล็กน้อย... ผมพยายามทำให้โค้ดสั้น และตรงไปตรงมาที่สุดคับ... แต่ยังมึนกันหมดเลย   :05:)
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 03 มิ.ย. 2006, 01:16 น.
ผมนั่งงงตรงฟังก์ชั่นตั้งนานน่ะครับ งงตรงที่ว่าจะคิดได้ยังไงว่าเอาแค่ค่าลบ ออกมาพอ
ถ้าผมคิดจะเป็นใช้ฟังก์ชั่นวนๆๆๆ แบบยาวๆ  :05:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 03 มิ.ย. 2006, 03:14 น.
ฟังก์ชั่นนี้ค่อนข้างตรงไปตรงมานะคับ
คืออยากรู้ว่าต้องเคลื่อนที่ไปทิศทางไหน จึงเอา 2 จุดมาเปรียบเทียบกัน
จุดที่อยู่ทางขวาย่อมมีค่ามากกว่าจุดที่อยู่ทางซ้าย
จึงได้ออกมาเป็น

สมมุติ จุดA คือ ต้นทาง และจุดB คือ ปลายทาง

ถ้า A > B --> A อยู่ขวา ต้องเคลื่อนที่ไปซ้าย ทิศทางจึงเป็น -1
ถ้า A < B --> A อยู่ซ้าย ต้องเคลื่อนที่ไปขวา ทิศทางจึงเป็น 1
ส่วน 0 เพื่อปรับให้อยู่กับที่ไม่ต้องเคลื่อนอีกแล้ว

อ้างอิงif(this._x>this.tX) { return -1;}
else if(this._x<this.tX) { return 1;}
else { return 0;}



ส่วนอีกวิธีที่ใช้ ค่าสัมบูรณ์นั้น จะดูงงกว่า แต่เป็นวิธีที่ดีที่รวบการเปรียบเทียบเป็นเพียงสมการ...
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: แอ๊ะ เมื่อ 03 มิ.ย. 2006, 08:19 น.
เข้ามาลงทะเบียนก่อน :22:

ยังไม่ได้เริ่มทำ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: bubbleball เมื่อ 10 มิ.ย. 2006, 02:48 น.
ปัญหาของคุณ layiji

สมมุติถ้าผู้กองสั่งให้ทหารนายหนึ่งเดินไปทีละ ครึ่งเมตร ไปจนถึงริมหน้าผา นายทหารก็เดินไปเรื่อยๆ จนเผอิญก้าวสุดท้ายมันเหลือแค่  ค่อนเมตรนี่สิ  เดินไปอีกครึ่งเมตร สมองก็ต้องคิดก่อนว่าถ้ายังก้าวด้วยระยะทางเท่าเดิม คงไ้ด้ตกเหวแน่ๆ สู้รักษาชีวิต ก้าวไปตรงริมเหว พอดีน่าจะดีกว่า  :33:


check before done before error happend  :22:

ส่วนโค้ดต้องให้อาจารย์เฉลยครับ  :40:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 10 มิ.ย. 2006, 10:11 น.
รอให้สอนบทต่อไปอยู่เลยครับ คนเรียนน้อยลงเรื่อยๆซะแล้ว  :05:

ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Ah! เมื่อ 10 มิ.ย. 2006, 10:22 น.
ช่วงนี้งานยุ่งครับ
ไว้ให้เพลาๆลง จะกลับมาตั้งใจเรียนครับ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: เต่ามาก เมื่อ 10 มิ.ย. 2006, 19:15 น.
เดี๋ยวผมจะโอนหน่วยกิตทีหลังนะครับ  :42:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: นายโอ้เอ้ เมื่อ 10 มิ.ย. 2006, 21:35 น.
ตายล่ะ ลืมลงทะเบียน  :44:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: จ๋o เมื่อ 13 มิ.ย. 2006, 13:36 น.
ตามมาลงทะเบียนทีหลัง :22:

จานครับ ทำแล้วได้เยี่ยงนี้ครับ:05:
http://f0nt.com/forum/index.php?action=dlattach;topic=6169.0;id=9778
อ้างอิงโค๊ด
function compr(org, des) {
    if(org>des) { return -1;}
    else if(org<des) { return 1;}
    else { return 0;}
}
function moveBox(bx) {
   bx.onEnterFrame = function() {
      if(this._width!=this.tWidth||this._height!=this.tHeight||this._x!=this.tX||this._y!=this.tY) {
              this._width+=10*compr(this._width, this.tWidth);
              this._height+=10*compr(this._height, this.tHeight);
              this._x+=5*compr(this._x, this.tX);
              this._y+=5*compr(this._y, this.tY);
      } else {
              delete bx.onEnterFrame;
      }
   };
}
butt1.onRelease = function(){
   boxA.tWidth=100;
    boxA.tHeight=30;
    boxA.tX=60;
    boxA.tY=120;
    boxB.tWidth=220;
    boxB.tHeight=60;
    boxB.tX=60;
    boxB.tY=50;
    moveBox(boxA);
    moveBox(boxB);
}
butt2.onRelease = function(){
   boxA.tWidth=100;
    boxA.tHeight=100;
    boxA.tX=60;
    boxA.tY=50;
    boxB.tWidth=100;
    boxB.tHeight=100;
    boxB.tX=180;
    boxB.tY=50;
    moveBox(boxA);
    moveBox(boxB);
}
แต่ผมอยากได้อย่างงี้ ผมต้องเปลี่ยนแปลงตรงไหนยังไงเหรอครับ :44:
http://f0nt.com/forum/index.php?action=dlattach;topic=6169.0;id=9779
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Kums เมื่อ 20 มิ.ย. 2006, 11:18 น.
ขุด!!!  :07:


ตอบ จ๋อ ที  :05:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 20 มิ.ย. 2006, 23:58 น.
อ้าว ไม่เห็น...  :42:

โทษทีคับ  :42:

ที่ว่าจะให้เป็นแบบนั้นหมายถึงจังหวะ ความเร็ว ที่มี easing หรือว่า ความยาวของ 2 กรอบที่เท่ากันหน่ะคับ ?
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: จ๋o เมื่อ 21 มิ.ย. 2006, 11:29 น.
หมายถึงทิศทางน่ะครับ จะเห็นว่า แบบแรกมันจะยืดออกทั้งสองข้าง แล้วค่อยเลื่อนมาที่ตำแหน่งปลายทาง แต่แบบที่สอง(ที่อยากให้เป็น)จะยึดตำแหน่งทางด้านหนึ่งไว้แล้วนยืดอีกด้านไปที่ตำแหน่งปลายทาง :42:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 21 มิ.ย. 2006, 13:46 น.
อ๋อ ถ้าอันนั้นอยู่ที่กำหนดจุด registerหรือจุด pivot ให้กับ movieClip ครับ
สังเกตว่าตอน convert เป็น MC มันจะมีกรอบให้เลือกจุด 9 จุด...
หรือถ้าเข้าไป edit ตัว MC จะเห็นว่ามันมี + อยู่ ก็คือ ถ้า + อยู่ตรงกลาง การยืดออกจะยืดทั้งสองด้านครับ
แต่ถ้าเรากำหนดให้อยู่มุมซ้ายบน เวลายืดก็จะออกไปทางด้านขวา ล่าง ครับ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 21 มิ.ย. 2006, 15:09 น.
ผมยังรอพี่อยู่นะครับ  :30:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: จ๋o เมื่อ 21 มิ.ย. 2006, 15:18 น.
 :25:ขอบคตุณครับ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: saa3 เมื่อ 04 ธ.ค. 2006, 20:05 น.
Hola Amigo!
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Layiji เมื่อ 04 ธ.ค. 2006, 20:05 น.
ตูลบไปแล้น  :30:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: เต่า.. เมื่อ 05 ธ.ค. 2006, 14:13 น.
วิชานี้ตู ดรอปทิ้งไปแล้ว  :05:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 28 ม.ค. 2007, 15:32 น.
 :01: พอดีหน้าที่การงานต้องเกี่ยวข้องกับเจ้าพวกนี้
เลยแอบมาลงเรียนทีหลัง 555

แต่ผมว่าผมทำอนิเมชั่นแล้วใส่คำสั่งแบบบ้านๆต่อไปคงจะดีกว่า 555  :01:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 18 พ.ค. 2007, 19:01 น.
ดรอปแล้วลงใหม่ :05:
http://img2.f0nt.com/flash/19e6141c52286946b4222cd641bcfb73.swf
อ้างอิงfunction compr(org, des) {
    if(org>des) { return -1;}
    else if(org<des) { return 1;}
    else { return 0;}
}
function moveBox(bx) {
   bx.onEnterFrame = function(){
   if(_root.mc2._x!=_root.mc2.tX||_root.mc2._y!=_root.mc2.ty) {
       _root.mc2._x+=10*compr(_root.mc2._x,_root.mc2.tX );
          _root.mc2._y+=10*compr(_root.mc2._y,_root.mc2.ty);
   }else {
              delete bx.onEnterFrame;
      }
   }
}
type = [150,-150,100,-100,250,-250,300,-300,350,-350,600,-600,500,-500,700,-700]

a1.onPress = function(){
        _root.attachMovie("mc","mc2",0)
   _root.mc2._x = type[random(14)]
   _root.mc2._y = type[random(14)]
    _root.mc2.tX=150;
   _root.mc2.ty=100;
  _root.mc2.setMask(_root.ox)
      moveBox(_root.mc2);
}
a2.onPress = function(){
        _root.attachMovie("mc2","mc2",0)
   _root.mc2._x = type[random(14)]
   _root.mc2._y = type[random(14)]
    _root.mc2.tX=150;
   _root.mc2.ty=100;
  _root.mc2.setMask(_root.ox)
      moveBox(_root.mc2);
}
a3.onPress = function(){
        _root.attachMovie("mc3","mc2",0)
      
   _root.mc2._x = type[random(14)]
   _root.mc2._y = type[random(14)]
    _root.mc2.tX=150;
   _root.mc2.ty=100;
  _root.mc2.setMask(_root.ox)
      moveBox(_root.mc2);
}
a4.onPress = function(){
        _root.attachMovie("mc4","mc2",0)
   _root.mc2._x = type[random(14)]
   _root.mc2._y = type[random(14)]
    _root.mc2.tX=150;
   _root.mc2.ty=100;
  _root.mc2.setMask(_root.ox)
      moveBox(_root.mc2);
}
a5.onPress = function(){
        _root.attachMovie("mc5","mc2",0)
   _root.mc2._x = type[random(14)]
   _root.mc2._y = type[random(14)]
    _root.mc2.tX=150;
   _root.mc2.ty=100;
  _root.mc2.setMask(_root.ox)
      moveBox(_root.mc2);
}
a6.onPress = function(){
        _root.attachMovie("mc6","mc2",0)
   _root.mc2._x = type[random(14)]
   _root.mc2._y = type[random(14)]
    _root.mc2.tX=150;
   _root.mc2.ty=100;
  _root.mc2.setMask(_root.ox)
      moveBox(_root.mc2);
}

ได้มาแบบนี้ครับผม :05:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: Black-Pigeon เมื่อ 29 ก.ค. 2007, 08:45 น.
เห้ย มีอะไรให้เล่นแบบนี้ด้วย อาจารย์ X-Saint มาสอนด้วย
อยากเล่นๆๆๆๆ ง่ะ เค้าเลิกเล่นกันยังง่ะ
แต่เป็นทหารจะมีเวลาเล่นเปล่าหนอ :05:





ปล.เป็นทหารทำให้เราพลาดอะไรดีๆ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 29 ก.ค. 2007, 09:52 น.
นั่นสิ  ช่วยมาต่ออีกซักหลายบทนะคร้าบ
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: heart เมื่อ 20 ส.ค. 2007, 11:44 น.
อ้างคำพูดจาก: จักรพรรดิโรเนียว เมื่อ 18 พ.ค. 2007, 19:01 น.
ดรอปแล้วลงใหม่ :05:
http://img2.f0nt.com/flash/19e6141c52286946b4222cd641bcfb73.swf
ได้มาแบบนี้ครับผม :05:


function compr(org, des) {
if (org>des) {
return -1;
} else if (org<des) {
return 1;
} else {
return 0;
}
}
function moveBox(bx) {
bx.onEnterFrame = function() {
if (_root.mc2._x != _root.mc2.tX || _root.mc2._y != _root.mc2.ty) {
_root.mc2._x += 10*compr(_root.mc2._x, _root.mc2.tX);
_root.mc2._y += 10*compr(_root.mc2._y, _root.mc2.ty);
} else {
delete bx.onEnterFrame;
}
};
}
type = [150, -150, 100, -100, 250, -250, 300, -300, 350, -350, 600, -600, 500, -500, 700, -700];
a1.onPress = a2.onPress = a3.onPress = a4.onPress = a5.onPress = a6.onPress = function() {
_root.attachMovie("mc", "mc2", 0);
_root.mc2._x = type[random(14)];
_root.mc2._y = type[random(14)];
_root.mc2.tX = 150;
_root.mc2.ty = 100;
_root.mc2.setMask(_root.ox);
moveBox(_root.mc2);
};


ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: X Saint เมื่อ 24 ส.ค. 2007, 10:39 น.
ผมเพิ่งรู้ว่ากระทู้นี้ถูกย้ายมาห้องนี้
ถึงว่าทำไมไม่เห็นเลย นึกว่ามันหายไปแล้ว  :08:

ผมเลยไปต่อแค่บท XML ในห้องแฟลช... ซึ่งเหมือนจะไม่มีใครสนใจเท่าไหร่  :08:

จำไม่ได้แล้วเหมือนกันว่าพูดถึงเรื่องไหน แล้วจะพูดอะไรต่อ  :08: ขอโทษด้วยครับ  :16:
ชื่อเรื่อง: Re: AS ตอนที่ 4:ลดรูป ย่อโค้ด
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 31 ส.ค. 2007, 15:09 น.
อ้างคำพูดจาก: heart เมื่อ 20 ส.ค. 2007, 11:44 น.

function compr(org, des) {
if (org>des) {
return -1;
} else if (org<des) {
return 1;
} else {
return 0;
}
}
function moveBox(bx) {
bx.onEnterFrame = function() {
if (_root.mc2._x != _root.mc2.tX || _root.mc2._y != _root.mc2.ty) {
_root.mc2._x += 10*compr(_root.mc2._x, _root.mc2.tX);
_root.mc2._y += 10*compr(_root.mc2._y, _root.mc2.ty);
} else {
delete bx.onEnterFrame;
}
};
}
type = [150, -150, 100, -100, 250, -250, 300, -300, 350, -350, 600, -600, 500, -500, 700, -700];
a1.onPress = a2.onPress = a3.onPress = a4.onPress = a5.onPress = a6.onPress = function() {
_root.attachMovie("mc", "mc2", 0);
_root.mc2._x = type[random(14)];
_root.mc2._y = type[random(14)];
_root.mc2.tX = 150;
_root.mc2.ty = 100;
_root.mc2.setMask(_root.ox);
moveBox(_root.mc2);
};




โฮ่ ขอบคุณนะครับ

นศ.นุ่งสั้นไม่ดี แต่โค๊ดยิ่งสั้น กลับดี