您的位置:首页 > 编程语言

Flash+XML生成动态导航菜单代码

2008-07-16 06:44 691 查看

Flash+XML生成动态导航菜单代码

Flash+XML生成动态三级导航菜单

作者:laofu

工作需要做的Flash+XML生成动态三级导航菜单(还有些不好的地方,逐步改进吧呵呵),代码如下:

XML代码:

<?xml version="1.0" encoding="utf-8"?>
<list>
<!-- 1 -->
<index first="办学指导思想" url="content/F0/index.html">
<content second="学校定位" url="content/F0/gd0_page0.html">
<point third="学校的定位与规划" url="content/F0/gd0_page0.html"/>
</content>
<content second="办学思路" url="content/F0/gd0_page1.html">
<point third="教育思想观念" url="content/F0/gd1_page0.html"/>
<point third="教学中心地位" url="content/F0/gd1_page0.html"/>
</content>
</index>
<!-- 2 -->
<index first="师资队伍" url="content/F1/index.html">
<content second="师资队伍数量与结构" url="content/F1/index_page0.html">
<point third="生师比" url="content/F1/gd0_page0.html"/>
<point third="整体结构状态与发展趋势" url="content/F1/gd0_page1.html"/>
</content>
<content second="主讲教师" url="content/F1/index_page1.html">
<point third="主讲教师资格" url="content/F1/gd1_page0.html"/>
<point third="教授、副教授上课的情况" url="content/F1/gd1_page1.html"/>
<point third="教学水平" url="content/F1/gd1_page2.html"/>
</content>
</index>
<!-- 3 -->
<index first="教学条件和利用" url="content/F2/index.html">
<content second="教学基本设施" url="content/F2/index_page0.html">
<point third="校舍状况" url="content/F2/gd0_page0.html"/>
<point third="实验室实习基地状况" url="content/F2/gd0_page3.html"/>
<point third="图书馆状况" url="content/F2/gd0_page8.html"/>
<point third="校园网建设状况" url="content/F2/gd0_page10.html"/>
<point third="运动场面积及体育设施" url="content/F2/gd0_page10.html"/>
</content>
<content second="教学经费" url="content/F2/index_page1.html">
<point third="学费收入用于四项教学经费的比例" url="content/F2/gd1_page0.html"/>
</content>
</index>
<!-- 4 -->
<index first="教学建设与改革" url="content/F3/index.html">
<content second="专业" url="content/F3/index_page0.html">
<point third="专业结构与布局" url="content/F3/gd0_page0.html"/>
<point third="教学计划" url="content/F3/gd0_page3.html"/>
</content>
<content second="课程" url="content/F3/index_page1.html">
<point third="教学内容与课程体系改革" url="content/F3/gd1_page0.html"/>
<point third="教材建设与成效" url="content/F3/gd1_page1.html"/>
<point third="教学方法与手段改革" url="content/F3/gd1_page2.html"/>
<point third="双语教学" url="content/F3/gd1_page3.html"/>
</content>
<content second="实践教学" url="content/F3/index_page2.html">
<point third="实践教学内容与体系" url="content/F3/gd2_page0.html"/>
<point third="有综合性、设计性试验的课程" url="content/F3/gd2_page2.html"/>
<point third="实验室开放" url="content/F3/gd2_page4.html"/>
</content>
</index>
<!-- 5 -->
<index first="教学管理" url="content/F4/index.html">
<content second="管理队伍" url="content/F4/index_page0.html">
<point third="结构与素质" url="content/F4/gd0_page0.html"/>
<point third="教学管理及其改革的研究与实践成果" url="content/F4/gd0_page0.html"/>
</content>
<content second="质量控制" url="content/F4/index_page1.html">
<point third="教学规章制度的建设与执行" url="content/F4/gd1_page0.html"/>
<point third="各主要教学环节的质量标准" url="content/F4/gd1_page0.html"/>
<point third="教学质量监控" url="content/F4/gd1_page0.html"/>
</content>
</index>
<!-- 6 -->
<index first="教风建设" url="content/F5/index.html">
<content second="教师风范" url="content/F5/index_page0.html">
<point third="教师的师德修养和敬业精神" url="content/F5/gd0_page0.html"/>
</content>
<content second="学习风气" url="content/F5/index_page1.html">
<point third="学生遵守校纪校规的情况" url="content/F5/gd1_page0.html"/>
<point third="学风建设和调动学生积极性的措施与效果" url="content/F5/gd1_page0.html"/>
<point third="参加课内外科技文化活动等情况" url="content/F5/gd1_page0.html"/>
</content>
</index>
<!-- 7 -->
<index first="教学效果" url="content/F6/index.html">
<content second="基本理论与基本技能" url="content/F6/index_page0.html">
<point third="学生基本理论与基本既能的实际水平" url="content/F6/gd0_page0.html"/>
</content>
<content second="毕业论文或毕业设计" url="content/F6/index_page1.html">
<point third="选题的性质、难度、份量、综合训练等情况" url="content/F6/gd1_page0.html"/>
<point third="论文或设计质量" url="content/F6/gd1_page0.html"/>
</content>
<content second="思想道德修养" url="content/F6/index_page2.html">
<point third="学生思想道德素养与文化素质的水平" url="content/F6/gd2_page0.html"/>
</content>
<content second="体育" url="content/F6/index_page3.html">
<point third="体育教学效果" url="content/F6/gd3_page0.html"/>
</content>
<content second="社会声誉" url="content/F6/index_page4.html">
<point third="生源、就业、社会评价" url="content/F6/gd4_page0.html"/>
</content>
</index>
</list>

Flash代码:

第一帧:

stop();
MovieWidth = 720;
MovieHeight = 620;
topSpace = 50;
bottomSpace = 30;
leftSpace = 60;
rightSpace = 30;
titleSpace = 20;
tempY2 = 0;
m0 = 0;
//m循环次数,记录m最后循环次数用
m1 = 0;
//m循环次数
i0 = 0;
//i循环次数
space0 = 20;
//一级指标标题间距
space1 = 18;
//二级指标标题间距
space2 = 16;
//三级指标标题间距
TxtWidth = MovieWidth-leftSpace-rightSpace;
TxtHeight = MovieHeight-topSpace-bottomSpace;
//文字高度
getFirstValue = function () {
var i = 0;
while (i<arguments.length) {
if (arguments[i] != null && arguments[i] != undefined && arguments[i] != "") {
return (arguments[i]);
}
i++;
}
return ("");
};
//层深, 文字, x坐标, y坐标, 字体, 文字大小, 文字颜色, 是否粗体, 对齐方式, 垂直对齐方式, 支持HTML
//this.createText(2, "000000000", 100, 100, "宋体", "12", "000000", false, "center", "left", false);
createText = function (depth, strText, xPos, yPos, fontFamily, fontSize, fontColor, isBold, alignPos, vAlignPos, isHTML) {
if (isBold == undefined || isBold == null || isBold == "") {
isBold = false;
}
alignPos = getFirstValue(alignPos, "center");
vAlignPos = getFirstValue(vAlignPos, "center");
if (isHTML == undefined || isHTML == null || isHTML == "") {
isHTML = true;
}
var fcTextFormat = new TextFormat();
fcTextFormat.font = fontFamily;
fcTextFormat.color = parseInt(fontColor, 16);
fcTextFormat.size = fontSize;
fcTextFormat.bold = isBold;
var LTextProperties;
LTextProperties = new Object();
createTextField("ASMovText_"+depth, depth, xPos, yPos, maxWidth, b);
var fcText = eval("ASMovText_"+depth);
fcText.multiLine = true;
fcText.autoSize = alignPos;
fcText.selectable = false;
fcText.html = isHTML;
if (isHTML) {
fcText.htmlText = strText;
} else {
fcText.text = strText;
}
fcText.setTextFormat(fcTextFormat);
// 文字y轴对齐坐标
switch (vAlignPos.toUpperCase()) {
case "LEFT" :
fcText._y = fcText._y-fcText._height;
break;
case "CENTER" :
fcText._y = fcText._y-fcText._height/2;
break;
case "RIGHT" :
fcText._y = fcText._y;
break;
}
LTextProperties.textWidth = fcText._width;
LTextProperties.textHeight = fcText._height;
if (LTextProperties.textHeight<=4) {
LTextProperties.textHeight = fontSize*2;
}
LTextProperties.textX = fcText._x;
LTextProperties.textY = fcText._y;
// trace(fcText._x+"&"+fcText._y);
return (LTextProperties);
delete LTextProperties;
delete fcTextFormat;
delete fcText;
};
loadXML = new XML();
loadXML.ignoreWhite = true;
loadXML.load("../xml/main_list.xml");
loadXML.onLoad = function(success) {
if (success) {
//trace("XML文件加载成功");
parseXML();
play();
} else {
loadXML.load("xml/main_list.xml");
parseXML();
play();
}
};
function parseXML() {
firstTitle = new Array();
allContent = new Array();
secondTitle = new Array();
theUrl = new Array();
secondUrl = new Array();
thirdContent = new Array();
thirdUrl = new Array();
thirdTitle = new Array();
allTitle = loadXML.firstChild.childNodes;
for (n=0; n<allTitle.length; n++) {
thirdUrl
= new Array();
thirdTitle
= new Array();
secondTitle
= new Array();
secondUrl
= new Array();
thirdContent
= new Array();
allContent
= loadXML.firstChild.childNodes
.childNodes;
firstTitle
= allTitle
.attributes.first;
theUrl
= allTitle
.attributes.url;
//trace(theUrl
);
//trace(n+1+". "+firstTitle
+" ================");
for (m=0; m<allContent
.length; m++) {
thirdUrl
[m] = new Array();
thirdTitle
[m] = new Array();
secondLoopNum = allTitle.length+(m+1)+m0;
thirdContent
[m] = loadXML.firstChild.childNodes
.childNodes[m].childNodes;
secondTitle
[m] = allContent
[m].attributes.second;
secondUrl
[m] = allContent
[m].attributes.url;
//trace(" "+(n+1+".")+(m+1+". ")+secondTitle
[m]);
for (i=0; i<thirdContent
[m].length; i++) {
thirdContent
[m][i] = thirdContent
[m].firstChild;
thirdUrl
[m][i] = thirdContent
[m][i].attributes.url;
thirdTitle
[m][i] = thirdContent
[m][i].attributes.third;
//trace(thirdUrl
[m][i]);
//trace(" "+(n+1+".")+(m+1+".")+(i+1+". ")+thirdTitle
[m][i]);
}
}
m0 += m;
}
}

第二帧:

stop();
//层深, 文字, x坐标, y坐标, 字体, 文字大小, 文字颜色, 是否粗体, 对齐方式, 垂直对齐方式, 支持HTML
function showMenu() {
//MovieWidth = 720; MovieHeight = 620;
for (n=0; n<allTitle.length; n++) {
X0 = leftSpace;
Y0 = n*space0+m1*space1+i0*space2+topSpace;
cellNum_n = Math.floor((Y0-topSpace)/TxtHeight);
tempX0 = X0+300*cellNum_n;
tempY0 = Y0-TxtHeight*cellNum_n;
Txt0 = n+1+". "+firstTitle
;
firstTitleNum = n+1;
this.createText(firstTitleNum, Txt0, tempX0, tempY0, "宋体", "14", "000000", true, "left", "left", true);
//一级指标导航标题
duplicateBT(firstTitleNum, 0);
/////////////////http://spaces.msn.com/members/laofu/
for (m=0; m<allContent
.length; m++) {
X1 = leftSpace+titleSpace;
Y1 = n*space0+(m+1+m1)*space1+i0*space2+topSpace;
cellNum_m = Math.floor((Y1-topSpace)/TxtHeight);
tempX1 = X1+300*cellNum_m;
tempY1 = Y1-TxtHeight*cellNum_m;
Txt1 = (n+1+".")+(m+1+". ")+secondTitle
[m];
secondTitleNum = allTitle.length+(m+1)+m1;
this.createText(secondTitleNum, Txt1, tempX1, tempY1, "宋体", "12", "000000", false, "left", "left", true);
//二级指标导航标题
duplicateBT(secondTitleNum, 1);
for (i=0; i<thirdContent
[m].length; i++) {
X2 = leftSpace+titleSpace*2;
Y2 = n*space0+(m+1+m1)*space1+(i+1+i0)*space2+topSpace;
cellNum_i = Math.floor((Y2-topSpace)/TxtHeight);
tempX2 = X2+300*cellNum_i;
tempY2 = Y2-TxtHeight*cellNum_i;
Txt2 = (n+1+".")+(m+1+".")+(i+1+". ")+thirdTitle
[m][i];
thirdTitleNum = secondLoopNum+(i+1)+i0;
this.createText(thirdTitleNum, Txt2, tempX2, tempY2, "宋体", "12", "000000", false, "left", "left", true);
//主要观测点导航标题
duplicateBT(thirdTitleNum, 2);
}
i0 += i;
}
m1 += m;
}
}
function duplicateBT(num, a) {
this.allButton.myButton.duplicateMovieClip("myButton"+num, num);
tempBT = eval("this.allButton.myButton"+num);
tempBT._x = eval("tempX"+a);
switch (a) {
case 0 :
tempBT._y = eval("tempY"+a)-20;
tempBT._width = 200;
tempBT._height = 20;
tempBT.n = n;
tempUrl = theUrl[this.n];
tempBT.onPress = function() {
getURL(theUrl[this.n], "mainFrame");
trace(theUrl[this.n]);
};
break;
case 1 :
tempBT._y = eval("tempY"+a)-16;
tempBT._width = 160;
tempBT._height = 14;
tempBT.n = n;
tempBT.m = m;
tempBT.onPress = function() {
getURL(secondUrl[this.n][this.m], "mainFrame");
trace(secondUrl[this.n][this.m]);
};
break;
case 2 :
tempBT._y = eval("tempY"+a)-16;
tempBT._width = 260;
tempBT._height = 14;
tempBT.n = n;
tempBT.m = m;
tempBT.i = i;
tempBT.onPress = function() {
getURL(thirdUrl[this.n][this.m][this.i], "mainFrame");
trace(thirdUrl[this.n][this.m][this.i]);
};
break;
}
tempBT.onRelease = function() {
this.gotoAndStop("stop");
};
tempBT.onRollOver = function() {
this.gotoAndPlay("rollover");
};
tempBT.onRollOut = function() {
this.gotoAndPlay("rollout");
};
}
showMenu();
http://spaces.msn.com/members/laofu/ 个人原创,转载请注明出处,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: