欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

比較完整簡(jiǎn)潔的Flash處理XML文檔數(shù)據(jù)教程 上篇第3/3頁(yè)

 更新時(shí)間:2007年12月12日 21:43:23   作者:  

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

復(fù)制代碼 代碼如下:

//xml-002.fla. 
//實(shí)例化一個(gè)xml對(duì)象. 
var myxml:XML = new XML(); 
//分析時(shí)忽略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é)點(diǎn)的節(jié)點(diǎn)名和頂層節(jié)點(diǎn)中屬性name的值. 
        trace(myxml.firstChild.nodeName+":"+myxml.firstChild.attributes.name); 
        //用一個(gè)數(shù)組來(lái)引用頂層節(jié)點(diǎn)中子級(jí)節(jié)點(diǎn)的數(shù)組. 
        var child_arr:Array = myxml.firstChild.childNodes; 
        //用嵌套for語(yǔ)句遍歷出xml文檔中的所有數(shù)據(jù). 
        //這個(gè)for遍歷的是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn). 
        for (var i = 0; i<child_arr.length; i++) { 
            //輸出頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)的節(jié)點(diǎn)名和頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)中屬性name的值. 
            trace(child_arr[i].nodeName+":"+child_arr[i].attributes.name); 
            //這個(gè)for遍歷的是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn). 
            for (var j = 0; j<child_arr[i].childNodes.length; j++) { 
                //輸出頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)的節(jié)點(diǎn)名 和 頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)中屬性name的值.不要暈.看看輸出面板就會(huì)明白它們之間的關(guān)系了哦. 
                trace(child_arr[i].childNodes[j].nodeName+":"+child_arr[i].childNodes[j].attributes.name); 
            } 
        } 
    } else { 
        trace("加載失敗!"); 
    } 
}; 
實(shí)驗(yàn)3:
利用xml文檔數(shù)據(jù)做用戶登錄。
新建一個(gè)xml文檔,在記事本中輸入下面的代碼,然后保存為 xml-003.xml。

復(fù)制代碼 代碼如下:

<?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é)點(diǎn)。<manager Post="經(jīng)理">是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)。Post是manager節(jié)點(diǎn)的屬性。<Employee Post="職員">是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn),Post是Employee節(jié)點(diǎn)的屬性。
<UserData username="MChooseFlash01" password="MChooseHappiness" /> 是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn),username和password是UserData節(jié)點(diǎn)的屬性。

這次也需要用到嵌套for。
打開(kāi)Flash新建一個(gè)Flash文檔,大小為300*100,保存到剛才的xml文檔的目錄中,命名為 xml-03.fla。
新建3個(gè)圖層分別命名Actions 、cont 、 bg 。
bg層在第一幀畫三個(gè)文本框大小的虛線框。cont層在第一幀拉二個(gè)輸入文本框,實(shí)例名分別為username_txt和password_txt,在拉一個(gè)動(dòng)態(tài)文本框,實(shí)例名為 status_txt。將這三個(gè)文本框?qū)R須虛線框,再點(diǎn)窗口->公用庫(kù)->按鈕,拉一個(gè)按鈕出來(lái)。實(shí)例名為login_btn。如圖:


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

復(fù)制代碼 代碼如下:

//xml-003.fla. 
//使用系統(tǒng)編碼.防止亂碼. 
System.useCodepage = true; 
//實(shí)例化一個(gè)xml對(duì)象. 
var myxml:XML = new XML(); 
//分析時(shí)忽略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() 
        { 
            //用一個(gè)數(shù)組來(lái)引用頂層節(jié)點(diǎn)中子級(jí)節(jié)點(diǎn)的數(shù)組. 
            var child_arr:Array = myxml.firstChild.childNodes; 
            //用UserData指定xml文檔節(jié)點(diǎn)的attributes對(duì)象. 
            var UserData:Object; 
            //這個(gè)for遍歷的是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn). 
            for (var i = 0; i<child_arr.length; i++) { 
                //這個(gè)for遍歷的是頂層節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn)下的子級(jí)節(jié)點(diǎn). 
                for (var j = 0; j<child_arr[i].childNodes.length; j++) { 
                    //用UserData指定child_arr[i].childNodes[j].attributes對(duì)象 
                    UserData = child_arr[i].childNodes[j].attributes; 
                    //判斷用戶名和密碼. 
                    //這里的UserData.username其實(shí)就是child_arr[i].childNodes[j].attributes.username的簡(jiǎn)寫.UserData.password同理. 
                    //username和password是xml文檔節(jié)點(diǎn)中的屬性.因?yàn)閤ml和Flash區(qū)分大小寫.所以在輸入時(shí)要注意大小寫. 
                    if ((username_txt.text == UserData.username) && (password_txt.text == UserData.password)) { 
                        //Post這個(gè)是頂層節(jié)點(diǎn)下子級(jí)節(jié)點(diǎn)的Post屬性. 
                        status_txt.text = child_arr[i].attributes.Post+":"+UserData.username+"登錄成功"; 
                        //如果用戶名和密碼正確就退出for.這個(gè)重要.如果不用這個(gè),就會(huì)一直重復(fù)判斷用戶名和密碼.直到將xml文檔節(jié)點(diǎn)遍歷完.那樣就不是我們想要的.所以一有正確的就退出for; 
                        return; 
                    } else { 
                        status_txt.text = "用戶名或密碼錯(cuò)誤"; 
                    } 
                } 
            } 
        }; 
    } else { 
        trace("加載失敗!"); 
    } 
}; 

相關(guān)文章

最新評(píng)論