數(shù)據(jù)庫(kù)到這可以了.下面是ASP:
打開(kāi)記事本,輸入下面的代碼,然后保存為 xml-008.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% 'xml-008.asp dim conn,rs,sqlcom,name_arr,index_arr '設(shè)置文檔類(lèi)型. Response.ContentType="text/xml" '輸出XML文檔. Response.Write("<?xml version='1.0' encoding='gb2312'?>") Response.Write("<!--xml-008.asp-->") Response.Write("<ColumnList>") '創(chuàng)建連接對(duì)象. Set conn=Server.CreateObject("Adodb.Connection") '這里用字符串方法連接數(shù)據(jù)庫(kù). '"Provider=Microsoft.Jet.OLEDB.4.0; 這個(gè)是數(shù)據(jù)庫(kù)驅(qū)動(dòng). 'Data Source="Server.MapPath("Data.mdb") 數(shù)據(jù)庫(kù)文件的相對(duì)路徑. conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("Data.mdb") '創(chuàng)建記錄集對(duì)象. Set rs=Server.CreateObject("Adodb.RecordSet") '查詢數(shù)據(jù)庫(kù)的sql語(yǔ)句.column是SQL中的關(guān)鍵字.要用[]中括號(hào)括起來(lái). sqlcom="select * from [column]" '執(zhí)行sql語(yǔ)句. '1,1 只讀. '1,3 可讀可寫(xiě). rs.Open sqlcom,conn,1,1 '重定義數(shù)組. 'rs.RecordCount 記錄集中總的記錄數(shù). Redim name_arr(rs.RecordCount) Redim index_arr(rs.RecordCount) '用for語(yǔ)句將column表中的數(shù)據(jù)循環(huán)出來(lái). 'Ubound數(shù)組的最大上標(biāo). for i=1 to Ubound(name_arr) '將column表中的columnName字段中的值存入數(shù)組name_arr. name_arr(i)=rs("columnName") '將column表中的columnIndex字段中的值存入數(shù)組index_arr. index_arr(i)=rs("columnIndex") '移到下一條數(shù)據(jù). rs.MoveNext Next '這里用了嵌套for語(yǔ)句, '第一個(gè)for j是將name_arr和index_arr數(shù)組中的數(shù)據(jù)讀出來(lái).也就是column表中的數(shù)據(jù). '第二個(gè)for k是將columnData表中的數(shù)據(jù)讀出來(lái). '用for語(yǔ)句將name_arr和index_arr數(shù)組中的數(shù)據(jù)循環(huán)出來(lái). for j=1 to Ubound(name_arr) '關(guān)閉記錄集. rs.Close '查詢數(shù)據(jù)庫(kù)的sql語(yǔ)句. '根據(jù)index_arr(j)數(shù)組中的值為條件來(lái)重復(fù)執(zhí)行sql語(yǔ)句. sqlcom="select * from columnData where columnIndex="&index_arr(j)&"" '執(zhí)行sql語(yǔ)句. rs.Open sqlcom,conn,1,1 '輸出XML節(jié)點(diǎn). Response.Write("<Column name='"&name_arr(j)&"'>") '用for語(yǔ)句將column表中的數(shù)據(jù)循環(huán)出來(lái). for k=1 to rs.RecordCount '輸出XML節(jié)點(diǎn). Response.Write("<ColumnData name='"&rs("cdName")&"' url='"&rs("cdURL")&"' />") '移到下一條數(shù)據(jù). rs.MoveNext Next '結(jié)束Column節(jié)點(diǎn). Response.Write("</Column>") Next '結(jié)束ColumnList節(jié)點(diǎn). Response.Write("</ColumnList>") '釋放記錄信對(duì)象. Set rs=nothing '關(guān)閉連接. conn.Close '釋放連接對(duì)象. Set conn=nothing %>
在IIS中瀏覽xml-008.asp文件.可以看到xml文檔的結(jié)構(gòu)跟實(shí)驗(yàn)7中的xml文檔結(jié)構(gòu)一樣.
下面就是Flash了
Flash中: 打開(kāi)Flash,新建一個(gè)Flash文檔,大小200*230,命名 xml-008.fla ; 新建一個(gè)圖層,命名為:Actions -------------------------------------------------- 新建一個(gè)影片剪輯,命名為:btn_over ;此影片剪輯用來(lái)裝飾鼠標(biāo)滑過(guò)時(shí)的效果. 新建二個(gè)圖層.分別命名為: -------------------------------------------------- Actions cont --------------------------------------------------
在圖層cont的第一幀畫(huà)一個(gè)200*18,沒(méi)有邊框的矩形,填充顏色為#0099FF;透明度為0,x,y值為0, 在第三幀按[F6],選中該幀的矩形,將透明度調(diào)為50;再選中第一幀,打開(kāi)屬性面板,在補(bǔ)間那選形狀. 在圖層Actions的第三幀按[F6],在該幀輸入代碼: stop(); 完成如圖:
回到主場(chǎng)景,新建一個(gè)按鈕.命名為:btn ; 在'指針經(jīng)過(guò)','按下'幀按[F6]. 將庫(kù)中的 btn_over 影片剪輯拉到'指針經(jīng)過(guò)'幀,x,y值為0, 再在'按下'幀畫(huà)一個(gè)200*18,沒(méi)有邊框的矩形,填充顏色為#FFF3CC; 透明度為50, x,y值為0,
回到主場(chǎng)景,新建一個(gè)影片剪輯.命名為:columnItem, 在高級(jí)選項(xiàng)那 標(biāo)識(shí)符為:columnItem,在勾選上 '為ActionScript導(dǎo)出','第一幀導(dǎo)出'. 新建三個(gè)圖層,分別命名為: -------------------------------------------------- btn text line -------------------------------------------------- 在圖層line的第一幀畫(huà)一條100*1的虛線.填充顏色為#660000; 透明度為80 ; x值為0,y值為18; 在圖層text畫(huà)一個(gè)動(dòng)態(tài)文本框,大小為200*18; 文本顏色為:#660000; x,y值為0, 實(shí)例名為: cName ; 在圖層btn中,將btn按鈕元件拉到第一幀.x,y值為0,實(shí)例名為: btn ; 完成如圖:
回到主場(chǎng)景. 打開(kāi)組件面板,拉一個(gè)Accordion組件到庫(kù)中; 在Actions圖層的第一幀輸入下面的代碼:
//導(dǎo)入類(lèi). import mx.core.View; import mx.containers.Accordion; //=========================================== //使用系統(tǒng)編碼.防止亂碼. System.useCodepage = true; //隱藏按鈕的鼠標(biāo)手形. Button.prototype.useHandCursor = false; //=========================================== //實(shí)例化一個(gè)xml對(duì)象. var columnData:XML = new XML(); //分析時(shí)忽略xml文檔中的空格. columnData.ignoreWhite = true; //加載http://localhost/xml/xml-008.asp. columnData.load("http://localhost/xml/xml-008.asp?ran="+Math.random(9999)); //調(diào)用XML.onLoad事件. columnData.onLoad = function(success:Boolean) { //如果加載成功,success=true;否則success=false; if (success) { //執(zhí)行dragColumn函數(shù). dragColumn(columnData.firstChild.childNodes); } }; //==========dragColumn函數(shù)用來(lái)繪制專(zhuān)欄數(shù)據(jù)=========== function dragColumn(column_arr:Array):Void { //創(chuàng)建Accordion組件的實(shí)例. //createClassObject(類(lèi)名稱,"實(shí)例名",深度,{初始對(duì)象}); createClassObject(Accordion, "column", 0, {_x:0, _y:0, _width:200, _height:240}); //執(zhí)行columnStyle函數(shù). columnStyle(); //獲取數(shù)組的長(zhǎng)度. var columnLen:Number = column_arr.length; //專(zhuān)欄的子菜單數(shù)組. var columnChild:Array; //引用專(zhuān)題欄目的對(duì)象. var MainItem:Object; //循環(huán)創(chuàng)建專(zhuān)題欄目. for (var i = 0; i<columnLen; i++) { //創(chuàng)建專(zhuān)題欄目.MainItem引用新創(chuàng)建的對(duì)象. //createSegment(類(lèi)名稱,值或?qū)嵗Q,顯示的標(biāo)題); MainItem = column.createSegment(View, i, column_arr[i].attributes.name); //獲取專(zhuān)欄的子菜單數(shù)組. columnChild = column_arr[i].childNodes; //循環(huán)創(chuàng)建專(zhuān)題欄目的子菜單. for (var j = 0; j<columnChild.length; j++) { //使用with語(yǔ)句簡(jiǎn)寫(xiě)代碼. //創(chuàng)建專(zhuān)題欄目的子菜單. //createChild("庫(kù)中的鏈接名","實(shí)例名稱",{初始對(duì)象}); //18.5是columnItem影片剪輯的高度和行距. with (MainItem.createChild("columnItem", "columnItem", {_x:0, _y:18.5*j})) { //顯示子菜單. cName.text = columnChild[j].attributes.name; //獲取點(diǎn)擊的URL; btn.cURL = columnChild[j].attributes.url; //btn.onRelease事件. btn.onRelease = btnEvent; } } } } //========執(zhí)行btn.onRelease事件的函數(shù)========= function btnEvent():Void { //連接點(diǎn)擊的URL. getURL(this.cURL, "_blank"); } //=======columnStyle函數(shù)設(shè)置專(zhuān)欄的樣式========= function columnStyle():Void { //文本顏色. column.setStyle("color", 0x660000); //字體. column.setStyle("fontFamily", "隸書(shū)"); //主題. column.setStyle("themeColor", "haloOrange"); //點(diǎn)擊專(zhuān)欄的動(dòng)畫(huà). column.setStyle("openEasing", mx.transitions.easing.Bounce.easeOut); }
現(xiàn)在大家就可以測(cè)試影片了.
教程源文件: flash-xml-asp-jsp.rar
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) Flash處理外部XML文檔數(shù)據(jù) [6] 下一頁(yè) Flash處理外部XML文檔數(shù)據(jù) [8]
◎進(jìn)入論壇Flash專(zhuān)欄版塊參加討論
|