关于XML在FLASH中的应用,以前写过几篇。也收集了几篇来自网络的。不过,都是一些非常简单而常用的。在这里,我把XML的其他相关说明总结一下。有不足之处,希望大家能相互补充。只为了一个共同的目的:共同提高。
一、书写标准的XML需要注意以下几点:
二、在FLASH中创建一个简单的实例: 网页教学网
//创建一个新的XML类实例var my_XML:XML=new XML();//创建一个TextArea组件,用于显示此XML内容var my_TextArea:mx.controls.TextArea;//加载外部XML文件my_XML.load("my_xml.xml");//为load函数定义onLoad函数---此处是必须的。只有当加载成功后,才能控制XML。否则不能。my_XML.onLoad=function(ok:Boolean){if(ok){my_TextArea.text+=this;}else{my_TextArea.text+="加载失败..."}}//忽略空白:my_XML.ignoreWhite=true; 网页教学网
三、关于FLASH解析XML详解,说白了,也就是对节点的读取。
首先,来看看这幅图,稍微加点印象。 Webjx.Com
网页教学网
下面,我将对XML文件的解析方面做详细的介绍。为了便于讲解,在此,我举一个简单的例子。
1、新建一个记事本文件,在里面输入如下内容:
<购买物品><衬衣 颜色="白色" 品牌="雅戈尔">1件</衬衣><裤子 颜色="深蓝" 品牌="王子裤">2件</裤子><鞋子 颜色="黑色" 品牌="红蜻蜓">3双</鞋子><总花费金额><打的费>50元</打的费><货物金>1000元</货物金></总花费金额></购买物品>
然后保存为"goods.xml",注意,在编码处,要选择"Unicode"。
2、下面,就对里面的各项值进行解读。读取整个XML文件的方法:在刚才的XML的同级目录下新建一FLA文件,然后在场景中放置一TextArea组件。并赋实例名“my_TextArea”,然后在第一帧中添加如下代码:
var my_XML:XML=new XML();System.useCodepage=true;var my_TextArea:mx.controls.TextArea;my_XML.load("goods.xml")my_XML.onLoad=function(ok:Boolean){if(ok){my_TextArea.text+=this;}else{my_TextArea.text+="加载失败"}}
按CTRL+ENTER测试,即可以看效果。
首先,我们来看看如何对XML中的节点名称或者节点属性进行读取呢?比如,我们要读取如例子中的"购买物品"这几个字符,该如何操作呢?我们使用如下语句:this.firstChild.nodeName;如果要读取"衬衣":this.firstChild.childNodes[0].nodeName;如果要读取"1条":this.firstChild.childNodes[1].childNodes[0].nodeValue;如果要读取裤子的品牌:this.firstChild.childNodes[1].attributes.品牌; 网页教学网
将XML读取进LIST组件中:
System.useCodepage = true;var my_TextArea:mx.controls.TextArea;var my_List:mx.controls.List;var my_XML:XML = new XML();my_XML.ignoreWhite = true;my_XML.load("shopping.xml");my_XML.onLoad = function(ok:Boolean) { if (ok) { var childnodes = this.firstChild.childNodes; for (i=0; i<childnodes.length; i++) { my_List.addItem({label:childnodes.nodeName}); } } else { my_TextArea.text += "加载失败"; }}; 网页教学网
第一个节点:firstChild:用法:this.firstChild;最后一个节点:lastChild用法:this.firstChild;兄弟节点:nextSibling:用法:this.firstChild.childNodes[0].nextSibling;另一个兄弟节点:previousSibling:用法:this.firstChild.childNodes[0].previousSibling;区别:nextSibling是朝后,而previousSibling是当前之前;父类节点:parentNode:用法:this.firstChild.parentNode;
上述所有实例演示: 相关文章 Flash游戏开发教程:第一节 FLASH中的元件能在Flex中完美使用 Baidu、Yahoo和google搜索引擎的搜索高级语法及应用 WEB标准教程:链接和文本标签的应用 WEB标准教程:P标签的应用 Windows桌面可以设置为漂亮的Flash Flash 播放器的安全性设置 ASP操作XML的类 教程:Asp.net与Xml开发网络硬盘技术 简化SOA开发 OASIS推动SCA和SDO应用