มาอีกแล้วหละ เกรงใจจังเลย :46:
อยากจะให้เจ้าเมนูเนี่ย พอเราชี้ปุ่มนึงแล้ว ปุ่มอื่นๆจางไป
ลองแล้วไม่ได้ซักที มันอยู่ทีการเรียงเลเยอร์รึเปล่าครับ ?
ช่วยบอกวิธีการด้วยครับ
รบกวนด้วยครับ ขอบคุณครับ
เท่าที่คิดออกก็ทำเป็น mc หลาย ๆ frame ครับ มี จำนวน frame เท่ากับ จำนวน menu แล้วก็ทำสีเข้มที่ menu อันนึง ที่เหลือสีอ่อน ทำไปจนครบ เช่น มี 2 menu [Home] [About]
frame ที่ 1 [Home] [About] <--- ไม่มี mouse ไป วางบนอะไรเลย
frame ที่ 2 {{HOME}} [About]
frame ที่ 3 [Home] {{About}}
พอ mouse ไป over ก็ให้มันกระโดดไปที่ frame ที่ menu ตรงนั้นเข้ม เช่นวางบน home ก็กระโดนไป frame 2
ถ้าจะมี submenu ก็ตัวอย่างตามนี้ครับ
http://www.flashkit.com/tutorials/Actionscripting/Expert/Very_Hig-_Da-541/index.php
ขอบคุณหลายครับ :46:
เดี๋ยวจะลองดูครับ
กรณีนี้แนะนำว่าทำ concept คล้ายๆ กับที่คุณ Wutty ว่าครับ
แต่เปลี่ยนเป็น mc ของแต่ละเมนูมีหลายๆ เฟรมตามจำนวนสถานะ
อาจจะมีแค่ติด กับจาง แต่ระหว่างติดกับจางเราสามารถทำ tween ให้มันค่อยๆ จางก็ได้
เมื่อเอาแต่ละปุ่มมาวางเรียงกันบน timeline หลัก หรือ mc ที่ต้องการ
เราก็คุมให้แต่ละ menu เล่นภายใน mc มันตามสถานะ
วิธีแบบนี้จะช่วยแก้ปัญหาเรื่องการเพิ่ม ลดเมนู ไม่ต้องแก้ไขทั้งหมดอีกครั้ง
เพราะแต่ละเมนูจะเป็นอิสระต่อกัน และช่วยเพิ่มลูกเล่นได้อิสระกว่าครับ
menu1.onRollOver = function(){
menu2._alpha = 50;
menu3._alpha = 50;
menu4._alpha = 50;
menu5._alpha = 50;
}
menu2.onRollOver = function(){
menu1._alpha = 50;
menu3._alpha = 50;
menu4._alpha = 50;
menu5._alpha = 50;
}
menu3.onRollOver = function(){
menu1._alpha = 50;
menu2._alpha = 50;
menu4._alpha = 50;
menu5._alpha = 50;
}
menu1.onRollOut = menu2.onRollOut = menu3.onRollOut = menu4.onRollOut = function(){
menu1._alpha = 100;
menu2._alpha = 100;
menu3._alpha = 100;
menu4._alpha = 100;
menu5._alpha = 100;
}
แบบนี้ก็ง่ายดีนะ :40:
เคยทำแบบข้างบนนี้เหมือนกันครับ รู้สึกว่ามันกำปั้นทุบดิ๊นทุบดิน
พอเห็นว่ามีคนใช้เหมือนกันก็ค่อยโล่งใจหน่อย :30:
อ้างคำพูดจาก: thaPIXIE เมื่อ 31 ก.ค. 2007, 18:07 น.
menu1.onRollOver = function(){
menu2._alpha = 50;
menu3._alpha = 50;
menu4._alpha = 50;
menu5._alpha = 50;
}
menu2.onRollOver = function(){
menu1._alpha = 50;
menu3._alpha = 50;
menu4._alpha = 50;
menu5._alpha = 50;
}
menu3.onRollOver = function(){
menu1._alpha = 50;
menu2._alpha = 50;
menu4._alpha = 50;
menu5._alpha = 50;
}
menu1.onRollOut = menu2.onRollOut = menu3.onRollOut = menu4.onRollOut = function(){
menu1._alpha = 100;
menu2._alpha = 100;
menu3._alpha = 100;
menu4._alpha = 100;
menu5._alpha = 100;
}
แบบนี้ก็ง่ายดีนะ :40:
เพิ่มเติมให้ครับเขียนเป็น function จะได้แก้ง่าย ๆ หน่อย
สมมติว่าตั้งชื่อ menu เรียงกันนะ 1-5 แล้วก็วางไว้ที่ _root
โดยเขียน script แบบนี้ไว้ที่ stage เลยนะครับ
function setAlpha(menu, alpha) {
return function() {
for(i=1;i<=5;i++) {
if (i!=menu) _root["menu"+i]._alpha = alpha;
}
}
}
/*
* setAlpha เป็น function ที่ return ค่าออกเป็น function เพิ่อเอาไปใส่เป็น function ของ event ของ mouse
*/
for(i=1;i<5;i++) {
_root["menu"+i].onRollOver = setAlpha(i, 50); // <-- เรียก function เมื่อเอา mouse ไป on จะ setAlpha ของทุกอันที่ไม่ใช่ i เป็น 50
_root["menu"+i].onRollOut = setAlpha(0, 100); // <-- ใส่ 0 เพราะ ใน function เขียนไว้ว่าถ้า != i มันจะ set ทุกตัว แต่ใน loop วนตั้งแต่ 1 - 5 ดังนั้นมันจะ set ทุกตัว เป็น 100
}
ถืกโต้ง...
แต่กลัวน้องเค้ากลัวหนีไปไง เลยไม่ไปยุ่งกะฟังก์ชั่น :42:
ขอบคุณครับ :46:+
+
โอ้ววว ป่าช้าแตก