http://img2.f0nt.com/flash/ef4f6883831ab79bc30e41247daeb806.swf
คือรบกวนถามหน่อยครับ ถ้าผมอยากจะให้มันเล่นจนเสร็จแล้วคลึ็กปุ่มอื่นแล้วปุ่มแรกยังค้างอยู่(แบบยังเป็นสีแดงๆ ให้รู้ว่าตอนนี้อยู่ที่หน้าไหนต้องทำไงครับ)
นี้สคริปปุ่มครับ
on (release) {
_root.gotoAndPlay(2);
}
on (rollOver) {
_root.mouse_over_button1 = true;
}
on (rollOut) {
_root.mouse_over_button1 = fstartlse;
งง คำถามนิดหน่อยครับ
คลิกแล้ว ค้างเป็น ตัวขอบสีแดง แล้วไปคลิกปุ่มอื่น ก็ยังอยากให้ ปุ่มเดิมมันค้างเป็นขอบสีแดงด้วยแบบนี้หรือเปล่าครับ
ผมก็พิมพ์งง เหมือนกัน แฮะ
:30: งงเหมือนกัน
สงสัยต้องอธิบายความต้องการทีละหน่อยให้เข้าใจง่ายๆ แล้วครับ
ใช่แล้ว ตอนนี้งงมาก
อยากให้มันค้างที่ Frame สุดท้ายที่เป็นสีแดง(ตอนเอาเมาร์คลิ๊กไปแล้วนะ) เพราะตอนนี้พอปล่อยมันก็เล่น Movie เป็น Loop ไปเรื่อยๆนะครับ
อยากให้มันค้างไว้จนกว่าเราจะไปคลิ็กปุ่มอื่นครับ (ยังงงไม่เนี่ย :05:)
แนะนำ ให้ทำ เฟรมสอง ที่พี่สั่งไปเมื่อกด ให้ปุ่มนั้นเป็น กราฟฟิกธรรมดา ครับ ไม่ต้องเป็น mc หรือ ให้เป็น mc ตัวใหม่ไปเลย
เพราะรุ้สึกว่า ถ้าสั่ง out มันก็จะเล่น out ครับ
เมื่อคลิกแล้ว เอาเม้าส์ออก มันก็กลับไปทำงานที่ out อยู่ดี
ไม่รู้มี แบบ advanc หรือเปล่า ต้องรอท่านอื่น อะครับ
ถ้าเป็นตูคงใช้ปุ่มใสวางครอบไปบน mc ครับ
ถ้าเอาเมาส์เหนือปุ่มใส จะสั่ง mc ให้เล่นเฟรมนึง
ถ้าเอาเมาส์ออกจากปุ่มใส จะสั่ง mc ให้เล่นต่อไป (ใน mc ก็คือแอนิเมตไปจนจบกระบวนลูป)
แต่ถ้ากดปุ่มใส ก็สั่ง mc ให้อะชึบ อะชึบ โดดไปเฟรมที่ไม่อยู่ในกระบวนลูป
ประมาณนี้เปล่าครับ
แต่เวลา เอาเมาส์ออกจากปุ่มใส มันก็จะ ไปเล่น ตอน เอาท์ อยู่ดี นะครับ ระวังๆ :37:
ดักไว้ด้วยไอ้นี่แล้วไงครับ
อ้างคำพูดจาก: iannnnn เมื่อ 12 มี.ค. 2008, 16:06 น.
ถ้าเอาเมาส์ออกจากปุ่มใส จะสั่ง mc ให้เล่นต่อไป (ใน mc ก็คือแอนิเมตไปจนจบกระบวนลูป)
คือพอกดปั๊บมันจะหลุดออกจากกระบวนลูปตอนโรลโอเวอร์
พอเอาต์ปั๊บก็เพลย์ต่อจากที่กด ซึ่งไม่ได้มีแอนิเมตอะไรเลย
http://img2.f0nt.com/flash/b10628021b69a883622bfd2fcbd9b9bf.swf
อันนี้ผม เอามันออกมาจาก mc มาสร้าง mc ใหม่ที่มีหน้าตาเหมือนกันเลย :37:
บวกทั้ง2ท่าน แต่ตอนแรกก็ทำแบบจักรีนะ แต่มันเล็งยากจริงๆไม่ให้มันกระตุกเนี่ย ตอนนี้คงต้องทำตามที่ว่าไปก่อน ใครรู้วิธีคุมใน Script บอกเค้าที่ :05:
เฮ้ย พี่ก็ก๊อปมา คอนโทร บีเลย แล้วก็ จะทำเป็น Mc ก็ ทำเอาอีกทีก็ได้ ตรงกันเปะ :37:
ผมว่าเขียนไว้ที่ปุ่มมันจัดการยากครับ
เขียนไว้ที่ทามไลน์จะสะดวกกว่าครับ
release คือ คลิกแล้วปล่อยเม้าส์ มันถึงจะเล่น
คลิกค้าง ต้อง press
แบบนี้ึรึเปล่า งงกับคำถาม
ถึงไหนแล้วครับ :31:
สรุปว่า อยากให้ กดเมนูไหน ก็ให้เมนูนั้นแสดงว่าอยู่หน้านั้นๆด้วยหรือครับ
ถ้าเป็นกรณี แฟลชทั้งเวบ นั่นเรื่องนึง
แต่ถ้า ใช้แฟลชเป็นแค่เมนู หรือเป็นหัวแฟลช+เมนู แล้วแยกหน้าด้วย html
ก็ต้องใช้ flashvars เข้ามาช่วยครับ
ป๋าช่วยแซมเปิ้ลกรณีหลังให้ดูพอเป็นน้ำจิ้มหน่อยสิครับ
:46: ขอบคุณมากครับ :52:
เป็น Flash ทั้งเว็บครับ
on (rollOver) {
if (_root.x == 1) {
gotoAndStop(30);
} else {
gotoAndPlay(30);
}
}
on (rollOut) {
if (_root.x == 1) {
gotoAndStop(60);
} else {
gotoAndPlay(60);
}
}
on (release) {
if (_root.lin != 1) {
gotoAndPlay(30);
_root.x = 1;
_root.lin = 1;
_root.loadmv1.loadMovie("barbqresortHome.swf");
_root.loadmv2.loadMovie("barbqresortHomeLow.swf");
_root.lv1.lv2.menu2.gotoAndPlay(1);
_root.lv1.lv2.menu3.gotoAndPlay(1);
_root.lv1.lv2.menu4.gotoAndPlay(1);
_root.lv1.lv2.menu5.gotoAndPlay(1);
_root.lv1.lv2.menu6.gotoAndPlay(1);
}
}
ตอนนี้ลองเปลี่ยนมาเขียนแบบนี้ดูก็ยังไม่เวิร์คครับหรือผมใส่ค่าตัวแปรผิดหรือเปล่าก็ไม่รู้ ตอนพิมพ์เนี่ย เซลส์ตามยิกๆเลยครับ :05:ทั้งเว็บติดอยู่แค่ปุ่มเนี่ย
(http://img2.f0nt.com/18/ef8e2a4f679b3299eaa9ed66af6e29ba.jpg)
ขอเบิ้ล วะเฮ่ยทำได้แล้ว เดี๋ยวทำเสร็จก่อนมาบอกวิธีทำ(ไม่รู้จะมีใครอยากรู้ หรือตูทำไม่เป็นอยู่คนเดียวฟะ :16:)
อยากรุ้ครับ เชิญ ๆ พี่ :25:
โอ้วว ยินดีด้วยครับ :22:
กำลังจะมาช่วยงงเลย :42:
ขอแนวคิดก็ดีนะครับ
อ้างคำพูดจาก: ความฝันอันเสียวสุด เมื่อ 18 มี.ค. 2008, 01:36 น.
ป๋าช่วยแซมเปิ้ลกรณีหลังให้ดูพอเป็นน้ำจิ้มหน่อยสิครับ
:46: ขอบคุณมากครับ :52:
กรณีหลังนี่เคยเขียนคร่าวๆไว้แล้วครับ ใช้ได้จริง
http://www.f0nt.com/forum/index.php/topic,11542.msg768435.html#msg768435 (http://www.f0nt.com/forum/index.php/topic,11542.msg768435.html#msg768435)
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:
ผมว่ามันมีปัญหานิดนึงอยู่นะครับ
ตอนนี้การทำงานเป็นอย่างนี้
1 เริ่ม(เหลือง)------------2 (เมาส์โอเวอร์)ค่อยๆไปเป็นแดง-------------3 สุด(แดง)---------4 ถ้ามีการคลิกปุ่มอื่นสั่งให้กลับมาเหลือง
แต่ตอนนี้ถ้าเอาเมาส์เข้าแล้วออกก่อนที่จะถึงชั้น 3 มันจะโดดไปชั้น 4 เลยนะครับ
ปล. ผมก็หาวิธีอยู่ครับ
แนวคิดคือน่าจะมีตัวแปรที่บอกการเปิดหรือปิดของปุ่มแต่ละปุ่ม เช่น
ปุ่ม1 = 0 (ปิด) ปุ่ม2 = 0 (ปิด) ปุ่ม3 = 0 (ปิด) ปุ่ม4 = 1 (เปิด(เป็นสีแดง))
ถ้าคลิกปุ่มที่เป็น 0 แล้ว สั่งให้ปุ่มที่เป็น 1 เล่นย้อนกลับ(หรือเดินต่อ) อะไรอย่างนี้เปล่าครับ
แลกเปลี่ยนกัน สนุกดี ตามที่คุณเลย์ว่าผมก็ว่าจริงครับ ตอนนี้ยังดูอยู่เหมือนกัน จนกว่าเซลจะตามหรือมีงานอื่นเข้ามาแหละครับ :46: :43:
ลองแก้โดย ใช้ frameTo() ของ lmc_tween แก้ดูครับน่าจะช่วยได้ในเรื่องตอนยกเม้าส์ออกกลางคัน
อาจจะดูแล้วออกจะมักง่าย แต่ผมว่าโอเคนะ
สมมุติ บนปุ่มยังไม่กด
ตอนเม้าส์ rollOver ก็ให้ frameTo(20)
พอเอาเม้าส์ออก rollOut ก็ให้ frameTo(1)
มันจะเล่นเฟรมแบบต่อเนื่อง ไม่กระตุกกระโดด
สมมุติ พอวางมันเล่นไปถึงเฟรม 13 พอเอาเม้าส์ออก มันก็จะเริ่มถอยจากเฟรมที่ 13 กลับมา
มูวี่เราก็จะไม่กระโดดแบบนั้นครับ
กรณีของคุณพันเอก
อย่างที่ป๋าเลย์ว่า ตอนเอาเม้าส์ออกก่อน มันจะกระโดด เพราะมูวี่ยังเล่นไม่ถึงเฟรมนั้น
พออีเว้นท์โรลเอ้าเกิด มันก็ gotoAndPlay(xx)ไปเฟรมเล่นกลับเลยไงครับ กระโดดเด้งไปเลย
น่าจะแก้ได้ด้วย frameTo() ลองปรับเปลี่ยนดูครับ ถ้าต้องการ
//ไว้จะเอาปุ่มกรณีแบบนี้มาฝากครับ ว่างๆก่อน
ผมว่าใช้ if แล้วก็เปรียบเทียบค่าตัวแปรเป็น 1 กับ 0 ก็น่าจะได้นะครับ มั้ง
แต่ถ้าใช้พวก tween ละก็ง่ายเลย ติดหนืดเด้งดึ๋งอีกตะหาก
ลองดูไปดูมา ผมว่ามันก็ได้แล้วนี่ครับ มันมีปัญหาตอนเล่นมูฟวี่ไปกลับ เวลาเอาเม้าส์วางทาบเฉยๆเอง
เดี๋ยวทำงานก่อน
ลองทำมาแล้วครับ :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:
ลองดูดีๆนะครับ มันไม่มีอะไรยากครับ
งานอนุบาลสคริปทั้งนั้น เพียงแต่แนวคิดประถมขึ้นมาหน่อย ยังไม่มัธยมครับ :30:
ห้ามใช้ mc tween จิครับ 555
เตรียมอนุบาลแอบเข้ามาดูพี่ๆูเค้าคุยกันค่ะ :31:/
ชอบๆ เห็นห้องแฟลชคึกคักแล้วมันเร้าร้อนจริงๆครับ ผมว่าเรามาลองตั้งโจทย์กัน แล้วช่วยกันคึดช่วยกันทำดูไหมครับ
ปล.บวกให้ทุกคนในกระจู๋นี้
ปอบ.เดี๋ยวจะลองเปลี่ยนดูครับวิธีใช้ tween น่าสนใจมากๆ แล้วก็frameto( ) ชอบครับ(ทำไม่ตอนทำเราคึดไม่ได้มั้งหว่า :30:)
อ้างคำพูดจาก: ความฝันอันเสียวสุด เมื่อ 19 มี.ค. 2008, 02:50 น.
ห้ามใช้ mc tween จิครับ 555
เนอะ คงยากดี บอกตรงๆ พอเห็นปั๊ป นึกถึง tween ก่อนเลยครับ :42:
(ก็บอกแล้วว่ามันดูมักง่าย 555 )
ผมลองโม่ๆดูแล้ว :05:
มันติดตรงกลาง เวลาเอาเม้าส์ออกก่อนแดง หรือเอาเม้าส์เสียบก่อนเหลือง
ถ้าไม่ใช้ตัวช่วยนี่มึนจริงๆ
ทำได้แล้วเอามาดูเลยครับ เอ๋อผมจะแนบ Source ไฟล์ได้ไงครับเอาไฟล์ให้เพื่อนๆลองทำต่อยอดดูกัน
zip แล้วแนบมาด้านล่างโพสต์เลยครับ (กดตอบก่อนนะ)