[ 来源:www.it55.com | 作者: | 时间:2007-07-12 | 收藏 | 推荐 ] 【大 中 小】
先看我做好的:
免费资源www.it55.com
新开窗口效果比较好
源文件
有个失误,减主菜单的时候名字忘了减了。
先讲讲我的思路,主要是利用几个变量:
menuNum ---主目录数
menuName_X ---第X个目录名
menu_X_childNum ---第X个目录的菜单数
menu_X_childName_Y ---第X个目录的第Y个菜单的名子
botton_X_Y_ulr ---第X个目录的第Y个菜单的连接地址
利用这几个变量循环出菜单。主要工作在层attmenu和attchild上。
edit层就是改变和储存这几个变量。
目前还在研究XML,想利用XML来储存这些数据。希望高手指点。
以下是FLA种的源程序加上我的注释,班门弄斧一下。
Layer:attmenu
frame1:空,用于读取外部数据。
frame2:
45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn
it55.com
for(i=1;i<menuNum+1;i++){ //取得主目录数目(menuNum),并循环复制按钮
attachMovie("unseeb","unseeb_"+i+"a",100+i) //复制不可见按钮用于主目录按钮的动作。
attachMovie("bover","menu_"+i,i); //复制动画按钮。
attachMovie("atext","atext"+i,200+i);//复制主目录上的按钮名称。
this["menu_"+i]._x=60+100*(i-1); //设置以上三个按钮载主场景的位置。
this["menu_"+i]._y=20;
this["unseeb_"+i+"a"]._x=60+100*(i-1);
this["unseeb_"+i+"a"]._y=20;
_root["atext"+i].name=eval("menuName_" + i);
_root["atext"+i]._x=30+100*(i-1);
_root["atext"+i]._y=12;
}
Layer:attchild
frame1-2:空,这两帧用于复制主目录
frame3: www.it55.com在线教程
stop(); //停止影片
for(i=1;i<=menuNum;i++){ //以主目录数目做循环
childNum=eval("menu_" + i +"_childNum"); //分别获得每个主目录的菜单数目
for(j=1;j<childNum+1;j++){ //以该主目录的菜单数目做循环
attachMovie("botton","botton_"+i+"_"+j,j+(i+2)*100); //复制菜单按钮
attachMovie("atext","atext_"+i+"_"+j,j+(i+102)*100); //复制菜单名称
this["botton_"+i+"_"+j]._x=60+100*(i-1); //设置以上两种按钮的属性(位置、不可见)
this["botton_"+i+"_"+j]._y=20+j*23;
this["botton_"+i+"_"+j]._visible=false;
this["atext_"+i+"_"+j]._x=20+100*(i-1);
this["atext_"+i+"_"+j]._y=12+j*23;
this["atext_"+i+"_"+j]._visible=false;
this["atext_"+i+"_"+j].name=eval("menu_"+i+"_childName_"+j); //取得菜单名称并赋值给MC(atext)中的动态文本。
} //下一个子菜单
} //下一个主目录
Layer:getnum:用于读取外部变量并将其转化为数值型。
http://www.it55.com/
Layer:edit:用于编辑各个目录以及菜单
MC:
edit (左下角): www.it55.com
onClipEvent(enterFrame){ //监测不可见按钮是否在第2帧(是否处于激活状态)为可见
this._visible = false;
for (i=1;i<=_root.menuNum;i++){
if (_root["unseeb_"+i+"a"]._currentframe == 2){
this._visible = true;
}
}
}
edit内的按钮: it55.com
on (release) {
for (i=1; i<=_root.menuNum; i++) {
if (_root["unseeb_"+i+"a"]._currentframe == 2) {
_root.editNum = i;
}
} //监测哪一个按钮处于激活状态
_root.editbg._visible = true; //激活编辑界面
for(j=1;j<=eval("_root.menu_"+_root.editNum+"_childNum");j++){ //告诉编辑界面该目录的子菜单数目
eval("_root.editbg.intext_"+j)._visible=true; //告诉editbg循环出相应数目的input框
eval("_root.editbg.intext_"+j+"_url")._visible=true;
}
for(k=eval("_root.menu_"+_root.editNum+"_childNum")+1;k<=20;k++){
(阅读次数:)