*********طريقه ساختن منو در فلش ***********

mzm

Member
سلام دوستان
خسته نباشيد

سوالم اينه كه چطوري مي تونم يك منوي عمودي در فلش بسازم كه زير مجموعه هم داشته باشد.
البته مي دونم برنامه اي به اسم 123 هست كه اين كار را مي كنه. ولي به دو دليل نمي شه.
اول اينكه نمي تونم توي اين برنامه فارسي براي منو بنويسم.
دوم اين كه مي خواهم در فلش ياد بگيرم كه از چه كدي بايد استفاده كنم .
يكميشو درست كردم ولي كدهام كامل نيست و جواب نمي ده.

يك لينك مي زارم كه منظورم را واضح تر متوجه شويد. http://www.irrf.com/ - به منوي اين لينك دقت كنيد.

لطفا مرا راهنمايي كنيد.
با تشكر
 

smmousazadeh

Well-Known Member
میتونی همه منو را به صورت یه movieclip بسازی و با gotoAndStop بین حالات مختلف حرکت کنی.
 

mzm

Member
سلام دوست عزيز. مشكلم اينه كه كدام قسمت از منو را بايد publish كنم . منظورم اينه كه قسمتهايي كه زير مجموعه منو هستند را چطوري بايد publish كنم. اگر كل page كه شامل منوي اصلي و زير مجموعه ها مي شود را publish كنم كه نمي شه. چون فضايي كه در سايت براي آن منو در نظر گرفته شده فقط به اندازه منوي اصلي است. اگر هم فقط اندازه خود منوي اصلي را publsh كنم كه در سايت منوهاي فرعي را نشان نمي ده. پس بايد كدام قسمت از كار را publish كنم.

اميدوارم متوجه شده باشيد. مرسي:)
 

kiarash.M

Active Member
ببین یه چیز برات میزارم بری حال کنی کامل کامل

این یه مقاله هست که تا چند وقت دیگه کامل میشه میزارم برات و این قسمتاش که برات میزارم به دردت میخوره

اول برای شروع باید به به سراغ flash رفت و یه Action script file باز کنید ( به جای flsh dcument )

بعد تمام کد های زیر رو کل المجمعین وارد آن کنید و با نام XmlMenu و پسوند ac ذخیره کنید

HTML:
class XmlMenu {
private var m_parent_mc:MovieClip;
private var m_menu_array:Array;
function XmlMenu(xmlpath_str:String, parent_mc:MovieClip) {
this.m_parent_mc = parent_mc;
this.m_menu_array = new Array();
initXML(xmlpath_str);
}
private function initXML(xmlpath_str:String):Void {
var thisObj = this;
var menu_array:Array = new Array();
var menu_xml:XML = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(success:Boolean) {
if (success) {
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
var shortcut = this.firstChild.childNodes[i];
var submenu_array:Array = new Array();
for (var j = 0; j<shortcut.childNodes.length; j++) {
submenu_array.push({caption:shortcut.childNodes[j].attributes.name, href:shortcut.childNodes[j].attributes.href});
}
menu_array.push({caption:shortcut.attributes['name'], href:shortcut.attributes['href'], subnav_array:submenu_array});
}
thisObj.initMenu(menu_array);
}
};
menu_xml.load(xmlpath_str);
}
private function initMenu(nav_array:Array):Void {
var thisObj = this;
var thisX:Number = 20;
var thisY:Number = 20;
for (var menuIndex = 0; menuIndex<nav_array.length; menuIndex++) {
var menuMC:MovieClip = this.m_parent_mc.attachMovie("menu_mc", "menu"+menuIndex+"_mc", menuIndex, {_x:thisX, _y:thisY});
menuMC.data = nav_array[menuIndex];
this.m_menu_array.push(menuMC);
menuMC.label_txt.text = menuMC.data.caption;
var subMC:MovieClip = this.m_parent_mc.createEmptyMovieClip("submenu"+menuIndex+"_mc", (menuIndex*20)+100);
subMC._x = thisX;
subMC._y = menuMC._height;
subMC.subMenuVisible = true;
hideSubMenu(subMC);
subMC.parentMenu = menuMC;
subMC._visible = false;
var yPos:Number = thisY;
var temp_subnav_array:Array = menuMC.data.subnav_array;
for (var i = 0; i<temp_subnav_array.length; i++) {
var linkMC:MovieClip = subMC.attachMovie("link_mc", "link"+i+"_mc", i, {_x:0, _y:yPos});
linkMC.data = temp_subnav_array[i];
linkMC.label_txt.text = linkMC.data.caption;
linkMC.onRelease = function() {
getURL(this.data.href, "_blank");
};
yPos += linkMC._height;
}
var thisWidth:Number = subMC._width+1;
var thisHeight:Number = subMC._height+1;
subMC.beginFill(0x000000, 0);
subMC.moveTo(0, 0);
subMC.lineTo(thisWidth, 0);
subMC.lineTo(thisWidth, thisHeight);
subMC.lineTo(0, thisHeight);
subMC.lineTo(0, 0);
subMC.endFill();
//
menuMC.childMenu = subMC;
thisX += menuMC._width;
}
for (var i in this.m_menu_array) {
this.m_menu_array[i].onRollOver = function() {
thisObj.showSubMenu(this.childMenu);
};
this.m_menu_array[i].onRelease = function() {
getURL(this.data.href, "_blank");
};
}
}
private function showSubMenu(target_mc:MovieClip):Void {
var thisObj = this;
if (!target_mc.subMenuVisible) {
hideAllSubMenus();
target_mc._visible = true;
target_mc.subMenuVisible = true;
target_mc.onMouseMove = function() {
var subHit:Boolean = this.hitTest(_xmouse, _ymouse, true);
var menuHit:Boolean = this.parentMenu.hitTest(_xmouse, _ymouse, true);
if (!((subHit || menuHit) && this.subMenuVisible)) {
thisObj.hideSubMenu(this);
delete this.onMouseMove;
}
};
}
}
private function hideSubMenu(target_mc:MovieClip):Void {
if (target_mc.subMenuVisible) {
target_mc._visible = false;
target_mc.subMenuVisible = false;
}
}
private function hideAllSubMenus():Void {
for (var i in this.m_menu_array) {
hideSubMenu(this.m_menu_array[i].childMenu);
}
}
private function toggleSubMenu(target_mc:MovieClip):Void {
(target_mc.subMenuVisible) ? hideSubMenu(target_mc) : showSubMenu(target_mc);
}
}


کار با class XmlMenu یه کم مشکله (تو help فلش مثلایه خوبی زده یه نگاه بکنید ) اگه بخوام وارد این مبحث بشم خودش یه 10 تا مقاله جدا لازم داره !! پس تا اینجا یه فایل با پسوند ac ذخیره کردید (مخفف Action script ) حالا باید فایل fla رو بسازید

تو frame اول در قسمت action بنویسید :

HTML:
new XmlMenu( "menu.xml", this)

برای باز کردن فایل XML که هنوز نساخته اید

این فایل را (fla) با پسوند fla به نام xmlmenu.fla ذخیره کنید (هنوز تستش نکنید )

اگه یه کم دقیق باشید می فهمید که در Action بالا شما در دستورات خود از یه سری movie clip استفاده کرده اید که اصلا در library وجود ندارد باید بسازید

1.link_mc (باید اینا رو با سلیقه خودتون بسازید من اینی را براتون در فایلا FLa گذاشتم >>)

2.menu_bg.jpg

3.menu_mc

4-- حالا با یه Notepad یه هر چیزه دیگری باید یه فایل XML بسازیم و تا به وسیله آن فایل که با as در را بطه است و فایل Fla اونا رو به هم وصل میکنه و...

در آخر فایل SWF ساخته می شه که به طور همزمان با فایل Xml در رابطه است (یعنی باید همیشه دو فایل swf & Xml با هم در کنار هم یار یاور هم باشند ...>>)

HTML:
  <?xml version="1.0" encoding="utf-8" ?> 
<navigation>
<menu name="Home" href="/home.html/" />
<menu name="Download" href="/D/">
<submenu name="swf clip" href="/d/s/" />
<submenu name="ActionScript" href="/d/actionscript/" />
</menu>
<menu name="مقالات" href="/reviews/">
<submenu name="فلش مقالات " href="/reviews/flsh/" />
<submenu name="مقالات متفرقه" href="/reviews/mot/" />
<submenu name="About kiafilm inc Software" href="/reviews/software/" />

</menu>
<menu name="kiafilm inc" href="/reviews/">
</navigation>

HTML:
  </menu>   
<menu name="نام منو " href="/آدرس منو /">
</navigation>


داره خیلی زیاد میشه بیا به این لینک هم فایل آمادش هم مقالش
 

mzm

Member
سلام دوست عزيز

از راهنمايي بسيار خوب شما متشكرم. همه چي عالي بود.
فقط يك چيزي. اونم اينه كه اگه قرار باشه من واسه يكي توضيح بدم كه چطوري از اين كدها استفاده كنه هيچي نمي تونم بگم چون اصلا متوجه نشدم . به همين خاطر فكر مي كني مي شه راه ساده تري (استفاده از كدهاي كمتر و ساده تر) پيدا كرد واسه ساختن يك منوي كشويي. البته بصورت عمودي.

بازم متشكرم .
موفق باشيد... :)
 

kiarash.M

Active Member
آیا به دردت خورد اگه خورد اینو بدون که این یکی از جدیدترین امکانات flash8 است که تو میتونی باحجم بسشار کم یک منو بسازی که بشه به راحتی با xml چنجش کنی ok
ولی اگر یک منوی کشویی ساده و خوشگل و عمودی میخوای گوشیییییییییییی...
 

kiarash.M

Active Member
الو ببین من یه منو عمودی برات میزارم اگر خوشت اومد بیا
به این سایت از قسمت download فایل fla بگیر
http://www.kiafilm.com

ok


برای download سزچ کن mune2(تو kiafilm.com) بخش download)


تو تو سایت من عضو شدی خوب حالا یه Thanks

رو بزن ok

یه توصیه یه mzm اون منو اولیه بهتره چون بدون نیاز به فلش edit میشه و 3 kb است ok
 

پیوست ها

  • my mnue2.zip
    12.7 کیلوبایت · بازدیدها: 40
آخرین ویرایش توسط مدیر:

iil.IRAN.lii

New Member
بابا سلام ... از کیا فیلم ممنونم و م ز م ولی بهتر نیست جای مرسی بگی با سپاس .. آخه مرسی کلمه فرانسوی هست .... .... بدرود
 

جدیدترین ارسال ها

بالا