阳光VIP

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

每天学习flash一点(3) flash外部读取xml

Posted on 2012-02-14 11:46  阳光VIP  阅读(222)  评论(0编辑  收藏  举报
刚刚学了点as2.0很希望能够把所学的记载下来,作为一种学习的好习惯。。今天我开始写有关于flash 一些很常用的东西。初学者,写得不好望能见谅。
 
对于外部读取xml, flash 有专门提供的类给我们,我们只需要简单调用某些函数就会发现其实xml 使用起来很方便:万事开头难,我们可以先模仿一个模式来写:先看看flash 调用xml一些基本的套路:现在我们开始我们第一步的学习
 
第一步:假设你已经写好xml文件,现在的工作就是在fla文件里面写我们的代码
简单的写一个xml文件,越简单越好.
新建一个文本改名字Mymenu.XML ,代码如下另存为Unicode编码(一般默认是ANSI编码)自己可以测试一下不同编码有什么不同,文件如下
 
<?xml version="1.0" encoding="UTF-8"?>
<item>
<b name="夏天的树人"/>
</item>
 
 
问题一,怎样读取外部xml文件
 
回答:我们首先知道的事情是用什么来帮我们完成这样的工作呢? 答案是“对象”。面向对象的思想告诉我们我们要把这一切都看成是对象。利用这样的对象帮助我们处理事件,完成工作。首先第一步:创建对象使用new XMl()的方法创建一个对象,代码如下:
       var myxml:XML=new XML();
 
第二步:
myxml.load("Mymenu.XML");//j外部加载我们写的xml文件
myxml.onLoad=function(success)
{
 
 if(success)
       trace("成功")
       }
如果测试成功了。一般下,在输出面板会出现我们跟踪的信息。”成功两个字”,这样的工作对于我们下一步真的很好好处。
提示:flash代码很多写法有好多相同的写法,都需要new创建一个对象:
例如
var myxml=new XMl();
var mysound=new Sound();
var mylv=new LoadVars();
等等这是一个学习的总结方法。
 
 
 
问题二:读取xml文件我们怎样操作他呢?怎样显示呢?
这个刚刚学习这个xml很多想要知道的答案,拿了代码只要调试成功我们的事情就有得做现在我们也来测试一下吧:同样的代码我们现在读取xml里面一个name的内容吧;用心看
 
<?xml version="1.0" encoding="UTF-8"?>
<item>
<b name="夏天的树人"/>
</item>
读取name的内容
 
 
代码如下:
var myxml:XML=new XML();
System.useCodepage=true;
myxml.ignoreWhite = true;
myxml.load("Mymenu.XML");
myxml.onLoad=function(success)
{
 
 if(success)
       trace("成功1");
 trace(myxml.firstChild.childNodes[0].attributes.name);
       }
我在这里只是增加了一个语句myxml.firstChild.childNodes[0].attributes.name。这里意思是第一个儿子下的一个数组集里面属性的变量值。
简单来说就是 :标签<item> 的包括的标签<b name=”夏天的树人” />下name的属性值。
这个好参考一下读取xml的属性。我们帮助文档有;
 
 
 
 
问题三: 读取xml的值究竟可以应用到那里?
我们不可能总是用trace来跟踪我们的信息,他最终要来显示到我们场景中?现在我们用文本来将name=“夏天的树人”的信息显示出来吧
 
第一步:新建一个动态文本,属性名为mytext,代码如下
 
 
 
 
 
 
 
 
 
var myxml:XML=new XML();
System.useCodepage=true;//防止乱码
myxml.ignoreWhite = true;
myxml.load("Mymenu.XML");
myxml.onLoad=function(success)
{
 
 if(success)
     trace("成功1");
     mytext.text=myxml.firstChild.childNodes[0].attributes.name;
 trace(myxml.firstChild.childNodes[0].attributes.name);
     }
 
在这里我只是增加了一个 mytext.text=myxml.firstChild.childNodes[0].attributes.name;
目的是将xml的信息用动态文本显示出来,这样就达到我们的目的。
 
总结:按照这样一步步来,从我们最简单的方法入手,越简单越好,免得我们增加负担。动态文本可以显示出来了,内容已经可以显示出来了
我们的目的已经达到了。我们拿到我们需要的内容。
 
问题四:xml究竟怎样玩才算好玩。?
对于学习到上面的东西是不是觉得有点兴奋呢?如果是的话,现在我要提出一个问题,数组的定义是什么?数组有什么作用呢? 它与xml能不能挂上钩呢? 与xml配合使用会出现什么问题?
 
 
请带着这样的问题进入下一阶段的学习讨论。
 
文章水平有限,望能见谅:
最后一点:xml的数据操作需要参考一下资料。下一节我会根据我的想法跟大家讨论一下
语法参考