做開發(fā)的過程中用到,自己手寫了一個,拿出來分享一下。 效果圖如下:
flash文件中第一幀上的代碼: 稍作解釋,還有你需要那個級別層次顯示都可以自己控制,不過得加些代碼。 flash源文件中拖一個文本框,不是庫中的,設(shè)置屬性如圖。在拖一個庫中的滾動條放到文本框中,他們會自動吻合。
以下是flash中的源代碼:
System.useCodepage = false; //課程xml //課程數(shù)組 var kc_XML:XML = new XML(); var kc_arr:Array = new Array(); //當前點擊的對象的index var kc_NowIndex:Number = new Number(); kc_XML.ignoreWhite = true; //當課程數(shù)據(jù)加載完后執(zhí)行下列語句 kc_XML.onLoad = function(succ) { if (succ) { jiexi(); showList(); //doAction(0); } }; //加載課程數(shù)據(jù) kc_XML.load("tree.xml"); //解析加載的數(shù)據(jù) function jiexi() { kc_len = kc_XML.childNodes[0].childNodes.length; var kc_node:XMLNode = kc_XML.childNodes[0].childNodes; for (var i:Number = 0; i<kc_len; i++) { var arr:Array = String(kc_node[i].attributes.timePoint).split(","); var arr_len:Number = arr.length; var timePoint_arr:Array = new Array(); for (var n:Number = 0; n<arr_len; n++) { timePoint_arr.push(hmsToM(arr[n])); } //將加載的數(shù)據(jù)解析好后放在kc_arr中 kc_arr.push({type:Number(kc_node[i].attributes.type), video:kc_node[i].attributes.video, label:"<a href='asfunction:doAction,"+i+"'>"+String(kc_node[i].attributes.name).substr(0, 16)+"</a>", showChild:true}); } } //點擊后響應(yīng)在這 function doAction(t:Number) { trace("你點擊了"+kc_arr[t].label) // 脫殼//加殼 var str:String = kc_arr[kc_NowIndex].label; var begin_num:Number = str.indexOf(">", 0); var length_num:Number = str.lastIndexOf("<")-begin_num; kc_arr[kc_NowIndex].label = "<a href='asfunction:doAction,"+kc_NowIndex+"'>"+str.substr(begin_num+1, length_num-1)+"</a>"; kc_NowIndex = t; var str:String = kc_arr[t].label; var begin_num:Number = str.indexOf(">", 0); var length_num:Number = str.lastIndexOf("<")-begin_num; kc_arr[t].label = "<font color='#00ff00'>"+str.substr(begin_num+1, length_num-1)+"</font>"; showList(); } //高亮顯示目錄中的某個章節(jié) function gaoliang(t:Number) { // 脫殼//加殼 var str:String = kc_arr[kc_NowIndex].label; var begin_num:Number = str.indexOf(">", 0); var length_num:Number = str.lastIndexOf("<")-begin_num; kc_arr[kc_NowIndex].label = "<a href='asfunction:doAction,"+kc_NowIndex+"'>"+str.substr(begin_num+1, length_num-1)+"</a>"; kc_NowIndex = t; var str:String = kc_arr[t].label; var begin_num:Number = str.indexOf(">", 0); var length_num:Number = str.lastIndexOf("<")-begin_num; kc_arr[t].label = "<font color='#00ff00'>"+str.substr(begin_num+1, length_num-1)+"</font>"; showList(); } //顯示樹狀菜單 function showList() { var kc_len:Number = kc_arr.length; var str:String = new String(); var temp_type:Number = 0; for (var i:Number = 0; i<kc_len; i++) { temp_type = kc_arr[i].type; if (kc_arr[i].showChild == true) { if (kc_arr[i].type<kc_arr[i+1].type) { str += WS(kc_arr[i].type)+"<font color='#ff0000'><a href='asfunction:hideChild,"+i+"'>○</a></font> "+kc_arr[i].label+newline; } else { str += WS(kc_arr[i].type)+"Ο "+kc_arr[i].label+newline; } } else { str += WS(kc_arr[i].type)+"<font color='#ff0000'><a href='asfunction:showChild,"+i+"'>◎</a></font> "+kc_arr[i].label+newline; for (var n:Number = i+1; n<kc_len; n++) { if (kc_arr[n].type<=temp_type) { i = n-1; break; } } if (n == kc_len) { break; } } } list_txt.htmlText = str; } //顯示子菜單 function showChild(t:Number) { kc_arr[t].showChild = true; showList(); } //隱藏子菜單 function hideChild(t:Number) { kc_arr[t].showChild = false; showList(); } //填充空格形成層級 function WS(n:Number) { var temp_str:String = new String(); for (var i:Number = 1; i<n; i++) { temp_str += " "; } return temp_str; }
下面是xml文件 其中的type屬性指示的是層級。暫未設(shè)置層級數(shù),內(nèi)部并無檢測樹形菜單的可靠性,故寫下列文件需小心
<a> <section type="1" name="信息組織課程介紹 " video="01/localclip.asx"/> <section type="2" name="課程概況 " video="01/localclip.asx"/> <section type="2" name="課程要求 " video="01/localclip.asx"/> <section type="2" name="教學方式 " video="01/localclip.asx"/> <section type="2" name="四、教材與參考資料 " video="01/localclip.asx"/> <section type="1" name="第一章 信息組織概述 " video="01/localclip.asx"/> <section type="2" name="一.信息組織的含義 " video="01/localclip.asx"/> <section type="3" name="信息組織的對象-信息資源范圍 " video="01/localclip.asx"/> <section type="3" name="信息組織與信息檢索流程圖 " video="01/localclip.asx"/> <section type="3" name="信息組織與信息檢索關(guān)系 " video="01/localclip.asx"/> <section type="2" name="二.信息組織的形式和檢索途徑 " video="01/localclip.asx"/> <section type="3" name="2.檢索體系的類型 " video="01/localclip.asx"/> <section type="3" name="文獻目錄 " video="01/localclip.asx"/> <section type="3" name="索引 " video="01/localclip.asx"/> <section type="3" name="機讀數(shù)據(jù)庫 " video="01/localclip.asx"/> <section type="3" name="網(wǎng)絡(luò)搜索引擎 " video="01/localclip.asx"/> <section type="3" name="2)按照標識特征和提供的檢索途徑分 " video="01/localclip.asx"/> <section type="3" name="3)按照標識記錄方式分 " video="01/localclip.asx"/> <section type="2" name="三.信息組織處理方式和研究內(nèi)容 " video="01/localclip.asx"/> <section type="3" name="1.信息處理的任務(wù) " video="01/localclip.asx"/> <section type="3" name="2.信息處理的方法 " video="01/localclip.asx"/> <section type="3" name="信息組織研究領(lǐng)域 " video="01/localclip.asx"/> </a>
源文件下載:treelist.rar
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2838524-1-2.html
本文鏈接:http://m.95time.cn/download/product/2008/5573.asp
出處:藍色理想
責任編輯:bluehearts
|