免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Flash處理外部XML文檔數(shù)據(jù)-Flash教程(二)

下面就是怎么在Flash中調(diào)用XML文檔和處理XML中的數(shù)據(jù).

Flash方面:

在Flash中調(diào)用xml文檔需要用到XML類和XMLNode類中的一些方法和屬性.這里我們就不需要用到那么多.把用到的方法和屬性列出來:

XML類:

  • XML.ignoreWhite;//處理xml文檔中的空白,設(shè)為true時,忽略空白,默認值為false.
  • XML.load("xml文檔的地址");//加載指定的xml文檔.
  • XML.onLoad=function(success:Boolean){};//成功加載了xml文檔時調(diào)用.
  • XML構(gòu)造函數(shù).

XMLNode類:

  • XMLNode.attributes;//用來指定xml文檔對象節(jié)點的屬性.
  • XMLNode.childNodes;//返回指定xml文檔對象的子級的數(shù)組.
  • XMLNode.firstChild;//引用父級節(jié)點的子級列表中的第一個子級.
  • XMLNode.nodeValue;//返回XML對象的節(jié)點值.
  • XMLNode.nodeName;//XML 對象的節(jié)點名稱

開始實驗:

首先說明:
在xml聲明處加上encoding="gb2312".使用gb2312編碼.;
Flash中假如有中文需要在加載代碼前面加上System.useCodepage = true;
使用系統(tǒng)編碼.防止亂碼.

實驗1:

一個簡單的實驗.把xml文檔中的節(jié)點在Flash輸出來.
新建一個xml文檔.在記事本輸入下面的代碼.保存為 xml-001.xml ;

<?xml version="1.0"?>
<!--xml-001.xml-->
<firstNode name="1">
<childNode name="1.1" />
<childNode name="1.2" />
<childNode name="1.3" />
</firstNode>

上面是一個簡單的xml文檔.結(jié)構(gòu)是一個頂層節(jié)點中嵌套三個子級節(jié)點.現(xiàn)在在Flash中如何讀出來呢?

來看操作:

打開Flash,新建一個Flash文檔,保存到剛才的xml文檔中的目錄中,命名 xml-001.fla ;
在第一幀輸入下面代碼:

//xml-001.fla.
//實例化一個xml對象.
var myxml:XML = new XML();
//分析時忽略xml文檔中的空格.
myxml.ignoreWhite = true;
//加載xml-001.xml文檔.
myxml.load("xml-001.xml");
//調(diào)用XML.onLoad事件.
myxml.onLoad = function(success:Boolean)
{
//假如加載成功,success=true;否則success=false;
if (success) {
trace("加載成功!");
//輸出頂層節(jié)點的節(jié)點名和頂層節(jié)點中屬性name的值.
trace(myxml.firstChild.nodeName ":" myxml.firstChild.attributes.name);
//用一個數(shù)組來引用頂層節(jié)點中子級節(jié)點的數(shù)組.
var child_arr:Array = myxml.firstChild.childNodes;
//用嵌套for語句遍歷出xml文檔中的所有數(shù)據(jù).
//這個for遍歷的是頂層節(jié)點下的子級節(jié)點.
for (var i = 0; i<child_arr.length; i ) {
//輸出頂層節(jié)點下的子級節(jié)點的節(jié)點名和頂層節(jié)點下的子級節(jié)點中屬性name的值.
trace(child_arr[i].nodeName ":" child_arr[i].attributes.name);
}
} else {
trace("加載失敗!");
}
};

實驗2:

現(xiàn)在做的是把一個多層嵌套節(jié)點的xml文檔在Flash中輸出來.
新建一個xml文檔.在記事本中輸入下面的代碼.然后保存為 xml-002.xml

<?xml version="1.0"?>
<!--xml-002.xml-->
<firstNode name="1">
<childNode name="1.1">
<Node name="1.1.1" />
<Node name="1.1.2" />
<Node name="1.1.3" />
</childNode>
<childNode name="1.2">
<Node name="1.2.1" />
<Node name="1.2.2" />
<Node name="1.2.3" />
</childNode>
<childNode name="1.3">
<Node name="1.3.1" />
<Node name="1.3.2" />
<Node name="1.3.3" />
</childNode>
</firstNode>

上面是一個多層嵌套節(jié)點的xml文檔.結(jié)構(gòu)是一個頂層節(jié)點中,嵌套3個子級節(jié)點,3個子級節(jié)點分別嵌套3個子級節(jié)點.現(xiàn)在又應(yīng)該怎樣在Flash中讀出來呢?其實原理跟上面一樣.在for中嵌套一個for就可以了.

打開Flash新建一個Flash文檔,保存到剛才的xml文檔的目錄中,命名為 xml-02.fla
在第一幀中輸入以下代碼:

//xml-002.fla.
//實例化一個xml對象.
var myxml:XML = new XML();
//分析時忽略xml文檔中的空格.
myxml.ignoreWhite = true;
//加載xml-002.xml文檔.
myxml.load("xml-002.xml");
//調(diào)用XML.onLoad事件.
myxml.onLoad = function(success:Boolean)
{
//假如加載成功,success=true;否則success=false;
if (success) {
trace("加載成功!");
//輸出頂層節(jié)點的節(jié)點名和頂層節(jié)點中屬性name的值.
trace(myxml.firstChild.nodeName ":" myxml.firstChild.attributes.name);
//用一個數(shù)組來引用頂層節(jié)點中子級節(jié)點的數(shù)組.
var child_arr:Array = myxml.firstChild.childNodes;
//用嵌套for語句遍歷出xml文檔中的所有數(shù)據(jù).
//這個for遍歷的是頂層節(jié)點下的子級節(jié)點.
for (var i = 0; i<child_arr.length; i ) {
//輸出頂層節(jié)點下的子級節(jié)點的節(jié)點名和頂層節(jié)點下的子級節(jié)點中屬性name的值.
trace(child_arr[i].nodeName ":" child_arr[i].attributes.name);
//這個for遍歷的是頂層節(jié)點下的子級節(jié)點下的子級節(jié)點.
for (var j = 0; j<child_arr[i].childNodes.length; j ) {
//輸出頂層節(jié)點下的子級節(jié)點下的子級節(jié)點的節(jié)點名 和 頂層節(jié)點下的子級節(jié)點下的子級節(jié)點中屬性name的值.不要暈.看看輸出面板就會明白它們之間的關(guān)系了哦.
trace(child_arr[i].childNodes[j].nodeName ":" child_arr[i].childNodes[j].attributes.name);
}
}
} else {
trace("加載失敗!");
}
};

實驗3:

利用xml文檔數(shù)據(jù)做用戶登錄.
新建一個xml文檔.在記事本中輸入下面的代碼.然后保存為 xml-003.xml

<?xml version="1.0" encoding="gb2312"?>
<!--xml-003.xml-->
<UserDataList>
<manager Post="經(jīng)理">
<UserData username="MChooseFlash01" password="MChooseHappiness" />
<UserData username="MChooseFlash02" password="MChooseHappiness" />
</manager>
<Employee Post="職員">
<UserData username="EChooseFlash01" password="EChooseHappiness" />
<UserData username="EChooseFlash02" password="EChooseHappiness" />
</Employee>
</UserDataList>

首先分析下結(jié)構(gòu):

<UserDataList>是頂層節(jié)點.
<manager Post="經(jīng)理">是頂層節(jié)點下的子級節(jié)點.Post是manager節(jié)點的屬性.
<Employee Post="職員">是頂層節(jié)點下的子級節(jié)點.Post是Employee節(jié)點的屬性.
<UserData username="MChooseFlash01" password="MChooseHappiness" /> 是頂層節(jié)點下的子級節(jié)點下的子級節(jié)點.username和password是UserData節(jié)點的屬性.

這次也需要用到嵌套for.

  • 打開Flash新建一個Flash文檔,大小為300*100,保存到剛才的xml文檔的目錄中,命名為 xml-03.fla
  • 新建3個圖層分別命名Actions , cont , bg .
  • bg層在第一幀畫三個文本框大小的虛線框.
  • cont層在第一幀拉二個輸入文本框,實例名分別為username_txt和password_txt,再拉一個動態(tài)文本框,實例名為status_txt.將這三個文本框?qū)R須虛線框.再點窗口->公用庫->按鈕.拉一個按鈕出來.實例名為login_btn.

如圖:

Actions層在第一幀中輸入以下代碼:

//xml-003.fla.
//使用系統(tǒng)編碼.防止亂碼.
System.useCodepage = true;
//實例化一個xml對象.
var myxml:XML = new XML();
//分析時忽略xml文檔中的空格.
myxml.ignoreWhite = true;
//加載xml-002.xml文檔.
myxml.load("xml-003.xml");
//調(diào)用XML.onLoad事件.
myxml.onLoad = function(success:Boolean)
{
//假如加載成功,success=true;否則success=false;
if (success) {
trace("加載成功!");
login_btn.onRelease = function()
{
//用一個數(shù)組來引用頂層節(jié)點中子級節(jié)點的數(shù)組.
var child_arr:Array = myxml.firstChild.childNodes;
//用UserData指定xml文檔節(jié)點的attributes對象.
var UserData:Object;
//這個for遍歷的是頂層節(jié)點下的子級節(jié)點.
for (var i = 0; i<child_arr.length; i ) {
//這個for遍歷的是頂層節(jié)點下的子級節(jié)點下的子級節(jié)點.
for (var j = 0; j<child_arr[i].childNodes.length; j ) {
//用UserData指定child_arr[i].childNodes[j].attributes對象
UserData = child_arr[i].childNodes[j].attributes;
//判定用戶名和密碼.
//這里的UserData.username其實就是child_arr[i].childNodes[j].attributes.username的簡寫.UserData.password同理.
//username和password是xml文檔節(jié)點中的屬性.因為xml和Flash區(qū)分大小寫.所以在輸入時要注重大小寫.
if ((username_txt.text == UserData.username) && (password_txt.text == UserData.password)) {
//Post這個是頂層節(jié)點下子級節(jié)點的Post屬性.
status_txt.text = child_arr[i].attributes.Post ":" UserData.username "登錄成功";
//假如用戶名和密碼正確就退出for.這個重要.假如不用這個,就會一直重復(fù)判定用戶名和密碼.直到將xml文檔節(jié)點遍歷完.那樣就不是我們想要的.所以一有正確的就退出for;
return;
} else {
status_txt.text = "用戶名或密碼錯誤";
}
}
}
};
} else {
trace("加載失敗!");
}
};

實例4:

利用List組件做個mp3播放列表.
新建一個xml文檔.在記事本中輸入下面的代碼.然后保存為 xml-004.xml

<?xml version="1.0" encoding="gb2312"?>
<mp3List>
<mp3 path="jmzcg.mp3">啊桑-寂寞在唱歌</mp3>
<mp3 path="jmjywsls.mp3">寂寞是因為思念誰</mp3>
<mp3 path="szwspdxd.mp3">老狼-睡在我上鋪的兄弟</mp3>
<mp3 path="qf.mp3">誓言-求佛</mp3>
<mp3 path="xyzth.mp3">下一站天后</mp3>
<mp3 path="nswdxfm.mp3">伊能靜-你是我的幸福嗎</mp3>
<mp3 path="aqfx.mp3">愛情復(fù)興(容祖兒)</mp3>
<mp3 path="qrlg.mp3">水木年華-秋日戀歌</mp3>
<mp3 path="qnyh.mp3">張國榮-倩女幽魂</mp3>
<mp3 path="a.mp3">皇綴馨艫撓⑽母?酒吧里常放)</mp3>
</mp3List>

xml結(jié)構(gòu):
<mp3List>xml文檔中的頂層節(jié)點.
<mp3 path="jmzcg.mp3">啊桑-寂寞在唱歌</mp3>頂層節(jié)點下的子級節(jié)點.path是mp3節(jié)點下的屬性."啊桑-寂寞在唱歌"是mp3的節(jié)點值.

  • 打開Flash新建一個Flash文檔,大小為200*150,保存到剛才的xml文檔的目錄中,命名為 xml-04.fla
  • 新建2個圖層分別命名Actions , cont .
  • cont層中拉一個List組件到第一幀.大小為200*150,實例名為mp3_list.
  • Actions層第一幀輸入下面代碼:

//xml-004.fla.
//使用系統(tǒng)編碼.防止亂碼.
System.useCodepage = true;
//實例化一個xml對象.
var myxml:XML = new XML();
//分析時忽略xml文檔中的空格.
myxml.ignoreWhite = true;
//加載xml-004.xml文檔.
myxml.load("xml-004.xml");
//調(diào)用XML.onLoad事件.
myxml.onLoad = function(success:Boolean)
{
//假如加載成功,success=true;否則success=false;
if (success) {
trace("加載成功!");
//用一個數(shù)組來引用頂層節(jié)點中子級節(jié)點的數(shù)組.
var child_arr:Array = myxml.firstChild.childNodes;
//這個for遍歷的是頂層節(jié)點下的子級節(jié)點.
for (var i = 0; i<child_arr.length; i ) {
//將歌曲添加到List組件中.
//child_arr[i].firstChild.nodeValue這個是xml節(jié)點的節(jié)點值.
//child_arr[i].attributes.path這個是xml節(jié)點下的path屬性.
mp3_list.addItem({label:(i 1) "." child_arr[i].firstChild.nodeValue, data:child_arr[i].attributes.path});
}
} else {
trace("加載失敗!");
}
};
//listEvent函數(shù)是執(zhí)行List組件中change事件
function listEvent():Void
{
//這個就是歌曲地址.用Sound類的loadSound方法就可以播放歌曲了.例:mysound.loadSound(mp3_list.selectedItem.data);具體請看幫助文檔.
trace(mp3_list.selectedItem.data);
}
//添加幀聽器.
mp3_list.addEventListener("change", listEvent);

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
flash訪問xml
VBA處理XML文件 | VBA實例教程
VBA--XML文件的讀取與輸出
XML DOM介紹
VB和VB.NET中的XML操作(2)
AJAX異步通信技術(shù)學(xué)習(xí)筆記
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服