资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
Flash 处理 XML 文档数据教程准备:首先你得有台电脑,其次是要装上 Windows系统和 Flash8。XML基础:既然是处理 XML文档,就要先来了解下 XML文档。下面是我所了解的,有些是在 Flash中用不到的。XML扩展标记语言(Extensible Markup Language)是 SGML(Structured Generalized Markup Language)的子集,由 World Wide Web Consortium(W3C)的 XML工作组定义。下面开始了解 XML的结构。XML 是由序言和文档元素组成的。序言包括:1.声明(declaration):文档的第一行,它说明这是一个 XML文档。 可选2.注释:增强文档的可读性。 可选3.文档类型声明 (document type declaration):XML 文档类型定义必须在 XML声明之后,文档元素之前,中间可以插入 XML处理指令,它说明文档的类型和结构。可选 4.处理指令(processing instruction):在 XML声明之后,处理 XML信息的指令。可选注:文档类型声明(document type declaration)需要用到 xml词汇表。如果想了解详细信息请访问 http:/www.w3c.org.文档元素:元素说明了文档的逻辑结构,元素包函起始标签、元素内容、元素属性和结束标签。一个 xml文档必须有一个顶层元素,所有的元素都嵌套在这个顶层元素中。文档元素名、属性名全部都是自定义的。说明:先看代码:没有地址或地址错误都会出错,SYSTEM 一个关键字信息上面是一个加了文档类型声明,处理指令的简单 xml文档。下面一一解释。这句是 xml 的声明信息。version 是版本号,encoding 是字符编码,如果有中文就需要用 gb2312 编码,standalone 属性可以取 yes和 no,属性值 yes,说明文档没有外部声明。属性值 no,说明文档有外部声明。这句是 xml的注释。这句是文档类型声明,DOCTYPE 标记是声明类型用的,ChooseFlash 是类型,这里的类型是指 xml中的词汇表。这句是处理指令,xml-stylesheet 是一个处理指令,type 是类型,href 是地址。这个处理指令把 CSS链接到 XML文档,跟 html中应用 css差不多一样。信息这是文档元素(Flash 用节点表示)。是顶层元素,是嵌套在顶层元素中的元素,“属性”是一个属性,“信息”是字符串,也可以这样写:如果用了文档类型声明,顶层元素命名最好跟声明的类型一至。否则会出错(要有词汇表时,像这个 ChooseFlash这不会出错,因为没有这个词汇表。)下面是一个完整 xml 文档:childNodexml方面就到这里,下面就是怎么在 Flash中调用 XML文档和处理 XML中的数据。Flash方面::在 Flash中调用 xml文档需要用到 XML类和 XMLNode类中的一些方法和属性。这里我们就不需要用到那么多。把用到的方法和属性列出来:XML类:XML.ignoreWhite;/处理 xml文档中的空白,设为 true时,忽略空白,默认值为 false.XML.load(xml文档的地址);/加载指定的 xml文档.XML.onLoad=function(success:Boolean);/成功加载了 xml文档时调用.XML构造函数.XMLNode类:XMLNode.attributes;/用来指定 xml文档的属性.XMLNode.childNodes;/返回指定 xml文档对象的子级的数组.XMLNode.firstChild;/引用父级节点的子级列表中的第一个子级.XMLNode.nodeValue;/返回 XML对象的节点值.XMLNode.nodeName;/XML 对象的节点名称开始实验:首先说明:在 xml声明处加上 encoding=gb2312,使用 gb2312编码;Flash中如果有中文需要在加载代码前面加上 System.useCodepage = true;使用系统编码,防止乱码。实验 1:一个简单的实验,把 xml文档中的节点在 Flash输出来。新建一个 xml文档,在记事本输入下面的代码。保存为 xml-001.xml 。上面是一个简单的 xml文档,结构是一个顶层节点中嵌套三个子级节点。现在在 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);/调用 XML.onLoad事件.myxml.onLoad = function(success:Boolean)/如果加载成功,success=true;否则 success=false;if (success) trace(加载成功!);/输出顶层节点的节点名和顶层节点中属性 name的值.trace(myxml.firstChild.nodeName+:+myxml.firstChild.attributes.name);/用一个数组来引用顶层节点中子级节点的数组.var child_arr:Array = myxml.firstChild.childNodes;/用嵌套 for语句遍历出 xml文档中的所有数据./这个 for遍历的是顶层节点下的子级节点.for (var i = 0; i 上面是一个多层嵌套节点的 xml文档,结构是一个顶层节点中,嵌套 3个子级节点,3 个子级节点分别嵌套 3个子级节点。现在又应该怎样在 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);/调用 XML.onLoad事件.myxml.onLoad = function(success:Boolean)/如果加载成功,success=true;否则 success=false;if (success) trace(加载成功!);/输出顶层节点的节点名和顶层节点中属性 name的值.trace(myxml.firstChild.nodeName+:+myxml.firstChild.attributes.name);/用一个数组来引用顶层节点中子级节点的数组.var child_arr:Array = myxml.firstChild.childNodes;/用嵌套 for语句遍历出 xml文档中的所有数据./这个 for遍历的是顶层节点下的子级节点.for (var i = 0; i首先分析下结构:是顶层节点。是顶层节点下的子级节点。Post是 manager节点的属性。是顶层节点下的子级节点,Post 是 Employee节点的属性。是顶层节点下的子级节点下的子级节点,username 和 password是 UserData节点的属性。这次也需要用到嵌套 for。打开 Flash新建一个 Flash文档,大小为 300*100,保存到刚才的 xml文档的目录中,命名为 xml-03.fla。新建 3个图层分别命名 Actions 、cont 、 bg 。bg层在第一帧画三个文本框大小的虚线框。cont 层在第一帧拉二个输入文本框,实例名分别为 username_txt和 password_txt,在拉一个动态文本框,实例名为 status_txt。将这三个文本框对齐须虚线框,再点窗口-公用库-按钮,拉一个按钮出来。实例名为 login_btn。如图:Actions层在第一帧中输入以下代码: /xml-003.fla./使用系统编码.防止乱码.System.useCodepage = true;/实例化一个 xml对象.var myxml:XML = new XML();/分析时忽略 xml文档中的空格.myxml.ignoreWhite = true;/加载 xml-002.xml文档.myxml.load(xml-003.xml);/调用 XML.onLoad事件.myxml.onLoad = function(success:Boolean)/如果加载成功,success=true;否则 success=false;if (success) trace(加载成功!);login_btn.onRelease = function()/用一个数组来引用顶层节点中子级节点的数组.var child_arr:Array = myxml.firstChild.childNodes;/用 UserData指定 xml文档节点的 attributes对象.var UserData:Object;/这个 for遍历的是顶层节点下的子级节点.for (var i = 0; i阿桑-寂寞在唱歌寂寞是因为思念谁老狼-睡在我上铺的兄弟誓言-求佛下一站天后伊能静-你是我的幸福吗爱情复兴(容祖儿)水木年华-秋日恋歌张国荣-倩女幽魂一首很棒的英文歌(酒吧里常放)xml结构:xml文档中的顶层节点。阿桑-寂寞在唱歌顶层节点下的子级节点,path是 mp3节点下的属性,“阿桑-寂寞在唱歌”是 mp3的节点值。打开 Flash新建一个 Flash文档,大小为 200*150,保存到刚才的 xml文档的目录中,命名为 xml-04.fla。新建 2个图层分别命名 Actions、cont ,cont层中拉一个 List组件到第一帧.大小为 200*150,实例名为 mp3_list,Actions层第一帧输入下面代码: /xml-004.fla./使用系统编码.防止乱码.System.useCodepage = true;/实例化一个 xml对象.var myxml:XML = new XML();/分析时忽略 xml文档中的空格.myxml.ignoreWhite = true;/加载 xml-004.xml文档.myxml.load(xml-004.xml);/调用 XML.onLoad事件.myxml.onLoad = function(success:Boolean)/如果加载成功,success=true;否则 success=false;if (success) trace(加载成功!);/用一个数组来引用顶层节点中子级节点的数组.var child_arr:Array = myxml.firstChild.childNodes;/这个 for遍历的是顶层节点下的子级节点.for (var i = 0; ichild_arr.length; i+) /将歌曲添加到 List组件中./child_arri.firstChild.nodeValue这个是 xml节点的节点值./child_arri.attributes.path这个是 xml节点下的 pa
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号