ทำยังไงครับ ช่วยที่

เริ่มโพสต์โดย พันเอก, 12 มี.ค. 2008, 15:21 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

พันเอก

ขอเบิ้ล วะเฮ่ยทำได้แล้ว เดี๋ยวทำเสร็จก่อนมาบอกวิธีทำ(ไม่รู้จะมีใครอยากรู้ หรือตูทำไม่เป็นอยู่คนเดียวฟะ :16:)
สมาชิกสมาคมพ่อบ้านทหารบก

จักรี

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

ej_sing

โอ้วว ยินดีด้วยครับ  :22:
กำลังจะมาช่วยงงเลย  :42:
ขอแนวคิดก็ดีนะครับ


อ้างคำพูดจาก: ความฝันอันเสียวสุด เมื่อ 18 มี.ค. 2008, 01:36 น.
ป๋าช่วยแซมเปิ้ลกรณีหลังให้ดูพอเป็นน้ำจิ้มหน่อยสิครับ

:46: ขอบคุณมากครับ :52:

กรณีหลังนี่เคยเขียนคร่าวๆไว้แล้วครับ ใช้ได้จริง

http://www.f0nt.com/forum/index.php/topic,11542.msg768435.html#msg768435

พันเอก

#18
http://img2.f0nt.com/flash/c764e545046436f66e2fd40fa202449b.swf

ใส่ค่าตัวแปรบนเลเยอร์บนสุดว่าถ้าเกิดเหตุการณ์นี้ให้ทำแบบนี้
function eventMouse(inx, mOver) {
   name = "menu"+inx;
   if (mOver == 0) {
      if ((_root.evt[inx] == 0)) {
         _root.indexOver = inx;
         _root[name].gotoAndPlay(2);
      }
   }
   if (mOver == 1) {
      _root.indexOver = 0;
      if ((_root.evt[inx] == 1)) {
         _root[name].gotoAndStop(57);
      } else {
         _root[name].gotoAndPlay(57);
      }
   }
}
function openMenu(inx) {
   switch (inx) {
   case 1 :
      _root.loadmv1.loadMovie("barbqresortHome.swf");
      _root.loadmv2.loadMovie("barbqresortHomeLow.swf");
      break;
   case 2 :
      _root.loadmv1.loadMovie("barbqresortAboutus.swf");
      break;
   case 3 :
      _root.loadmv1.loadMovie("barbqresortMenu.swf");
      break;
แล้วไปใส่ที่Mcว่าเราจะให้ปุ่มที่ต้องการี้ใช้เหตุการณ์ไหน
on (rollOver) {
   _root.eventMouse(1, 0);
}
on (rollOut) {
   _root.eventMouse(1, 1);
}
on (release) {
   _root.menuOnClick(1);
}
อาจจะงง รอคนเก่งๆมาอธิิบายเพิ่มก็ดีนะครับ
เพราะผมก็ไม่ค่อยรู้มาก :30:
สมาชิกสมาคมพ่อบ้านทหารบก

Layiji

#19
ผมว่ามันมีปัญหานิดนึงอยู่นะครับ


ตอนนี้การทำงานเป็นอย่างนี้
1 เริ่ม(เหลือง)------------2 (เมาส์โอเวอร์)ค่อยๆไปเป็นแดง-------------3 สุด(แดง)---------4 ถ้ามีการคลิกปุ่มอื่นสั่งให้กลับมาเหลือง

แต่ตอนนี้ถ้าเอาเมาส์เข้าแล้วออกก่อนที่จะถึงชั้น 3   มันจะโดดไปชั้น 4 เลยนะครับ


ปล. ผมก็หาวิธีอยู่ครับ
แนวคิดคือน่าจะมีตัวแปรที่บอกการเปิดหรือปิดของปุ่มแต่ละปุ่ม เช่น

ปุ่ม1  = 0 (ปิด) ปุ่ม2  = 0 (ปิด) ปุ่ม3  = 0 (ปิด) ปุ่ม4  = 1 (เปิด(เป็นสีแดง))
ถ้าคลิกปุ่มที่เป็น 0  แล้ว สั่งให้ปุ่มที่เป็น 1 เล่นย้อนกลับ(หรือเดินต่อ) อะไรอย่างนี้เปล่าครับ

นักเขียนการ์ตูนรายปี

พันเอก

แลกเปลี่ยนกัน สนุกดี ตามที่คุณเลย์ว่าผมก็ว่าจริงครับ ตอนนี้ยังดูอยู่เหมือนกัน จนกว่าเซลจะตามหรือมีงานอื่นเข้ามาแหละครับ :46: :43:
สมาชิกสมาคมพ่อบ้านทหารบก

ej_sing

#21
ลองแก้โดย ใช้ frameTo() ของ lmc_tween แก้ดูครับน่าจะช่วยได้ในเรื่องตอนยกเม้าส์ออกกลางคัน

อาจจะดูแล้วออกจะมักง่าย แต่ผมว่าโอเคนะ

สมมุติ บนปุ่มยังไม่กด

ตอนเม้าส์ rollOver ก็ให้ frameTo(20)
พอเอาเม้าส์ออก rollOut  ก็ให้ frameTo(1)

มันจะเล่นเฟรมแบบต่อเนื่อง ไม่กระตุกกระโดด
สมมุติ พอวางมันเล่นไปถึงเฟรม 13 พอเอาเม้าส์ออก มันก็จะเริ่มถอยจากเฟรมที่ 13 กลับมา
มูวี่เราก็จะไม่กระโดดแบบนั้นครับ

กรณีของคุณพันเอก
อย่างที่ป๋าเลย์ว่า ตอนเอาเม้าส์ออกก่อน มันจะกระโดด เพราะมูวี่ยังเล่นไม่ถึงเฟรมนั้น
พออีเว้นท์โรลเอ้าเกิด มันก็ gotoAndPlay(xx)ไปเฟรมเล่นกลับเลยไงครับ กระโดดเด้งไปเลย

น่าจะแก้ได้ด้วย frameTo()  ลองปรับเปลี่ยนดูครับ ถ้าต้องการ

//ไว้จะเอาปุ่มกรณีแบบนี้มาฝากครับ ว่างๆก่อน

คนตาบอดข้างเดียว

#22
ผมว่าใช้ if แล้วก็เปรียบเทียบค่าตัวแปรเป็น 1 กับ 0 ก็น่าจะได้นะครับ  มั้ง

แต่ถ้าใช้พวก tween ละก็ง่ายเลย ติดหนืดเด้งดึ๋งอีกตะหาก

ลองดูไปดูมา ผมว่ามันก็ได้แล้วนี่ครับ มันมีปัญหาตอนเล่นมูฟวี่ไปกลับ เวลาเอาเม้าส์วางทาบเฉยๆเอง
เดี๋ยวทำงานก่อน
ในหมู่คนตาบอด คนตาบอดข้างเดียวได้เป็นราชา

ej_sing

#23
ลองทำมาแล้วครับ  :44: อาจไม่ใช่อย่างที่คุณพันเอกต้องการ แต่ ใกล้ๆล่ะมั๊งครับ  :44:

http://img2.f0nt.com/flash/6d5c9b6978286fc1d55c6118bff03e72.swf
ผมแยกแบบนี้นะครับ ตามเลเยอร์

- ปุ่มใส a_btn , b_btn ... e_btn
- mc_1 , mc_2 ..... mc_5 อยู่ใต้ปุ่ม
- page_mc หลัก แสดงหน้า
- bg

ส่วนของ function chose
ผมใช้วิธี เลือกอันไหนก็แล้วแต่ อันอื่นๆทั้งหมด ก็วิ่งกลับไปเฟรม 1
แล้วค่อย สั่ง mc ตัวที่เลือกให้วิ่งไป เฟรมที่ต้องการ
ถ้าปุ่มอื่นๆมันอยู่เฟรม 1 อยู่แล้ว สคริป FrameTo() ก็ทำงานไม่หนัก( ไม่แน่ใจนักแต่มันก็ไม่หนักนะ)

อ้างอิง
stop();
#include "lmc_tween.as"
chk = "mc_1";
chose(mc_1);
function chose(mc:MovieClip) {
   for (var i:Number = 1; i<6; i++) {
      _root["mc_"+i].frameTo(1,1);
   }
   mc.frameTo(30,1);
}
function rollO(mc:MovieClip) {
   mc.frameTo(30,1);
}
function rollOt(mc:MovieClip) {
   mc.frameTo(1,1);
}


ส่วนในปุ่ม ผมเอามาเขียนบนไทม์ไลน์ เลยเยอะหน่อย โดยรวมไม่มีอะไรเลยครับ
เช็คแบบธรรมดาๆ (ตัดโค้ดมาปุ่มเดียว) ทั้ง 3 events

หากกด ก็จะสั่ง ฟังชั่น chose ให้ทำงาน ส่ง mc_1 เข้าไป ให้วิ่งไปเฟรมที่ต้องการ
chk คือ ตัวบอกว่า เราอยู่หน้าไหน หรือ เลือกสั่งให้ mc_ ไหนหยุดเฟรมไว้
page_mc คือหน้า page หลักที่ต้องการ page1, page2 ...

โรลโอเวอร์ ก็สั่งวิ่งไป เล่นไปตามสบาย

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

อ้างอิงa_btn.onRelease = function() {
   chose(mc_1);
   chk = "mc_1";
   page_mc.frameTo(1,3);
};

//////////////////////

a_btn.onRollOver = function() {
   rollO(mc_1);
};

/////////////////////////////

a_btn.onRollOut = function() {
   if (chk != "mc_1") {
      rollOt(mc_1);
   }
};
]


คงพอเป็นแนวทางได้นะครับ อันนี้กรณีใช้ frameto() แบบถึกๆ ลูกทุ่งๆเลยครับ
เพราะตอนนี้คิดได้แค่นี้  :05:

แต่ frameTo() ผมว่ามีข้อเสียใหญ่ๆคือ มันสมูทไม่ได้ดั่งใจครับ

// จริงๆใช้ tween ก็ได้ครับสวยกว่าเจ๋งกว่า ปร้บวิธีนิดหน่อย
// แต่พูดถึง frameTo() ไว้ครับเลยทำมาเป็นตัวอย่าง

แนบไฟล์มาแล้ว ลองโหลดไปลองเล่นๆดูครับ

จักรี

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

ej_sing

ลองดูดีๆนะครับ มันไม่มีอะไรยากครับ
งานอนุบาลสคริปทั้งนั้น เพียงแต่แนวคิดประถมขึ้นมาหน่อย ยังไม่มัธยมครับ  :30:

คนตาบอดข้างเดียว

#26
ห้ามใช้ mc tween จิครับ 555
ในหมู่คนตาบอด คนตาบอดข้างเดียวได้เป็นราชา

เกดลดา

เตรียมอนุบาลแอบเข้ามาดูพี่ๆูเค้าคุยกันค่ะ  :31:/
กินทุกอย่างยกเว้นต้นหอมค่ะ

พันเอก

ชอบๆ เห็นห้องแฟลชคึกคักแล้วมันเร้าร้อนจริงๆครับ ผมว่าเรามาลองตั้งโจทย์กัน แล้วช่วยกันคึดช่วยกันทำดูไหมครับ
ปล.บวกให้ทุกคนในกระจู๋นี้
ปอบ.เดี๋ยวจะลองเปลี่ยนดูครับวิธีใช้ tween น่าสนใจมากๆ แล้วก็frameto( ) ชอบครับ(ทำไม่ตอนทำเราคึดไม่ได้มั้งหว่า :30:)
สมาชิกสมาคมพ่อบ้านทหารบก

ej_sing

อ้างคำพูดจาก: ความฝันอันเสียวสุด เมื่อ 19 มี.ค. 2008, 02:50 น.
ห้ามใช้ mc tween จิครับ 555

เนอะ คงยากดี บอกตรงๆ พอเห็นปั๊ป นึกถึง tween ก่อนเลยครับ  :42:
(ก็บอกแล้วว่ามันดูมักง่าย 555 )

SMF 2.1.7 © 2026, Simple Machines