阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

每天学一点flash(4) 数组与xml配合使用

Posted on 2012-02-14 11:46  阳光VIP  阅读(173)  评论(0编辑  收藏  举报

带着上一节的问题,这次我们开始讨论数组与xml 的关系,配合使用它来达到我们想要的效果。

第一,   我们可以这样理解,数组作用是存放东西,好比仓库

第二,   Xml里面的数据,好比商品

第三,   现在我们这个仓库来装取我们的商品

 

 

看下面的xml 文件这次增加三个项目(先看上一章所讲的内容)

<?xml version="1.0" encoding="UTF-8"?>

<item>

<b  name="夏天的树人"/>

<b  name="秋天的树人"/>

<b  name="冬天的树人"/>

<b  name="春天的树人"/>

</item>

这里增加几个name 到时候我用数组来装我们的数据,显示我们的数据

好了,现在开始我们下一步的工作拉

新建一个fla文件,在第一帧上写上我们的代码最开始的代码

 

var myxml:XML=new XML();//新建对象

System.useCodepage=true;//防止乱码

myxml.ignoreWhite=true;

myxml.load("Mymenu.XML");//开始加载外部的xml文件

 

myxml.onLoad=function(success)

{

 

 if(success)

       trace("成功");

       }

 

保证外部加载回来的xml文件可以被加载这个工作的第一步。

 

 

问题1,怎样显示出xml文件的内容?

回答: xml文件已经被加载了,接下来我们的工作是用xml操作语句来获取我们所要的值。看下面的代码。

 

 

 

 

 

 

 

var myxml:XML=new XML();//新建对象

System.useCodepage=true;//防止乱码

myxml.ignoreWhite=true;

myxml.load("Mymenu.XML");//开始加载外部的xml文件

 

myxml.onLoad=function(success)

{

 

 if(success)

       trace("成功");

      

       trace(myxml.firstChild.childNodes[0].attributes.name);

       trace(myxml.firstChild.childNodes[1].attributes.name);

       trace(myxml.firstChild.childNodes[2].attributes.name);

       trace(myxml.firstChild.childNodes[3].attributes.name);

       }

 

这里只是增加四句。它最大区别之处就是childNodes[??]里面值的不同,它是一个数组,分别代码标签<b name=”??”/>里面不同的值,如果代码调试成功的话。在输出面板就会按顺序显示出这样的信息。

成功

夏天的树人

秋天的树人

冬天的树人

春天的树人

 

 

问题二:xml数据可显示出来了,它有什么用呢?

回答:数据可以显示出来,那么我们就可以利用xml 的值帮我们做很多东西,例如是一个动态的文本导航,这个一个很常用的做法,外部加载xml文件,swf文件显示它他的值,日后我们只需要修改xml文件的值就帮助不修改fla文件就可以达到维护的目的。

 

 接下来,我们用四个动态文本框将xml的值显示出来吧这里只要增加几句就ok

分别名为 mytext1,mytext2,mytext3,mytext4

代码如下:

 

 

 

 

 

 

 

 

var myxml:XML=new XML();//新建对象

System.useCodepage=true;//防止乱码

myxml.ignoreWhite=true;

myxml.load("Mymenu.XML");//开始加载外部的xml文件

 

myxml.onLoad=function(success)

{

 

 if(success)

       {trace("成功");

      

       trace(myxml.firstChild.childNodes[0].attributes.name);

       trace(myxml.firstChild.childNodes[1].attributes.name);

       trace(myxml.firstChild.childNodes[2].attributes.name);

       trace(myxml.firstChild.childNodes[3].attributes.name);

      

       mytext1.text=myxml.firstChild.childNodes[0].attributes.name;

       mytext2.text=myxml.firstChild.childNodes[1].attributes.name;

       mytext3.text=myxml.firstChild.childNodes[2].attributes.name;

       mytext4.text=myxml.firstChild.childNodes[3].attributes.name;

      

       }

       }

这里增加只是四句,我们达到用动态文本框显示xml数据的目的

       mytext1.text=myxml.firstChild.childNodes[0].attributes.name;

       mytext2.text=myxml.firstChild.childNodes[1].attributes.name;

       mytext3.text=myxml.firstChild.childNodes[2].attributes.name;

       mytext4.text=myxml.firstChild.childNodes[3].attributes.name;

      

这下次跟上一节我讨论的问题是一样的好了。继续看问题

 

问题三,xml与数组真的有关系吗?它们配合使用是怎样的?

回答:数组的用处就是存储数据,帮我们管理数据,现在让我们开始我们下面的讲解吧

第一步:我们要获取xml数据。我们利用数组来

首先新建一个数组。

  var  list=new Array();

代码如下

 

 

 

 

 

 

 

 

var myxml:XML=new XML();//新建对象

System.useCodepage=true;//防止乱码

myxml.ignoreWhite=true;

var list=new Array();//新建数组用于存储xml数据

myxml.load("Mymenu.XML");//开始加载外部的xml文件

 

myxml.onLoad=function(success)

{

 

 if(success)

     {trace("成功");

    

     trace(myxml.firstChild.childNodes[0].attributes.name);

     trace(myxml.firstChild.childNodes[1].attributes.name);

     trace(myxml.firstChild.childNodes[2].attributes.name);

     trace(myxml.firstChild.childNodes[3].attributes.name);

    

     for(i=0;i<myxml.firstChild.childNodes.length;i++)

     {

            list[i]=myxml.firstChild.childNodes[i].attributes.name;

           

           

     mytext1.text=list[0];

     mytext2.text=list[1];

     mytext3.text=list[2];

     mytext4.text=list[3];

     }

    

     }

     }

在这里我们关键一步就是

     for(i=0;i<myxml.firstChild.childNodes.length;i++)

     {

            list[i]=myxml.firstChild.childNodes[i].attributes.name;

}

 

其目的就是将xml 数据变量name的值存入到数组里面,日后我们就可以方便管理

现在解析一下:循环条件myxml.firstChild.childNodes.length

这里是指取得我们节点数组的长度,我们在xml设计了四个<那么长度就是4,可以这样理解.:这里只是增加几句而已

他同样可以达到刚才的效果,这一下子是不是很爽呢?

 

 

问题四,数组与xml的配合可以做出什么来?现在你能否告诉我,数组它的作用与定义呢?

 回想一下,请慢慢地想慢慢的回忆。。。。。。。。。。。。

 

 

 

文章水平有限,望能见谅:希望能够对你有点帮助