




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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词汇表。如果想了解详细信息请访问.文档元素:元素说明了文档的逻辑结构,元素包函起始标签、元素内容、元素属性和结束标签。一个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文档:childNode xml方面就到这里,下面就是怎么在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.firstC);/用一个数组来引用顶层节点中子级节点的数组.var child_arr:Array = myxml.firstChild.childNodes;/用嵌套for语句遍历出xml文档中的所有数据./这个for遍历的是顶层节点下的子级节点.for (var i = 0; ichild_arr.length; i+) /输出顶层节点下的子级节点的节点名和顶层节点下的子级节点中属性name的值.trace(child_arri.nodeName+:+child_); else trace(加载失败!);实验2:现在做的是把一个多层嵌套节点的xml文档在Flash中输出来。新建一个xml文档,在记事本中输入下面的代码,然后保存为 xml-002.xml。上面是一个多层嵌套节点的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.firstC);/用一个数组来引用顶层节点中子级节点的数组.var child_arr:Array = myxml.firstChild.childNodes;/用嵌套for语句遍历出xml文档中的所有数据./这个for遍历的是顶层节点下的子级节点.for (var i = 0; ichild_arr.length; i+) /输出顶层节点下的子级节点的节点名和顶层节点下的子级节点中属性name的值.trace(child_arri.nodeName+:+child_);/这个for遍历的是顶层节点下的子级节点下的子级节点.for (var j = 0; jchild_arri.childNodes.length; j+) /输出顶层节点下的子级节点下的子级节点的节点名 和 顶层节点下的子级节点下的子级节点中属性name的值.不要晕.看看输出面板就会明白它们之间的关系了哦.trace(child_arri.childNodesj.nodeName+:+child_arri.childN); else trace(加载失败!);实验3:利用xml文档数据做用户登录。新建一个xml文档,在记事本中输入下面的代码,然后保存为 xml-003.xml。首先分析下结构:是顶层节点。是顶层节点下的子级节点。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; ichild_arr.length; i+) /这个for遍历的是顶层节点下的子级节点下的子级节点.for (var j = 0; jchild_arri.childNodes.length; j+) /用UserData指定child_arri.childNodesj.attributes对象UserData = child_arri.childNodesj.attributes;/判断用户名和密码./这里的UserData.username其实就是child_arri.childNodesj.attributes.username的简写.UserData.password同理./username和password是xml文档节点中的属性.因为xml和Flash区分大小写.所以在输入时要注意大小写.if (username_txt.text = UserData.username) & (password_txt.text = UserData.password) /Post这个是顶层节点下子级节点的Post属性.status_txt.text = child_arri.attributes.Post+:+UserData.username+登录成功;/如果用户名和密码正确就退出for.这个重要.如果不用这个,就会一直重复判断用户名和密码.直到将xml文档节点遍历完.那样就不是我们想要的.所以一有正确的就退出for;return; else status_txt.text = 用户名或密码错误; else trace(加载失败!);实例4:利用List组件做个mp3播放列表。新建一个xml文档,在记事本中输入下面的代码,然后保存为 xml-004.xml。阿桑-寂寞在唱歌寂寞是因为思念谁老狼-睡在我上铺的兄弟誓言-求佛下一站天后伊能静-你是我的幸福吗爱情复兴(容祖儿)水木年华-秋日恋歌张国荣-倩女幽魂一首很棒的英文歌(酒吧里常放)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)/如果加载
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年硅钢行业当前发展趋势与投资机遇洞察报告
- 2025年网络借贷行业当前发展趋势与投资机遇洞察报告
- 收纳师行业知识培训课件
- 2025年义务教育科学课程标准考试测试题库及参考答案
- 2025年矿产权评估师模拟题和答案分析
- 2025版义务教育语文课程标准理论测试题及答案【附语文新课标解读】
- 2025义务教育化学课程标准考试题库及答案
- 撇捺的硬笔书法课件
- 2025年注册税务师全真模拟测试带答案
- 2025年黑龙江省大庆市中考数学试卷
- 养生茶基础知识培训课件
- 2025年暑假反电信网络诈骗试题及答案
- 2025年医学基础知识真题(附答案)
- 新学期教学工作会议上校长讲话:把功夫下在课堂里把心思放在学生上把质量落到细节中
- 几内亚湾油气项目:中国石油的机遇、风险与战略抉择
- 电工教学空气开关课件
- 废旧钢模板翻新工艺技术方案
- 5Why原因分析方法培训
- 2025至2030中国电子产品散热器行业市场现状分析及竞争格局与投资发展报告
- 2025年中国真人CS行行业市场调研分析及投资前景预测报告
- 泌尿外科快速康复外科理念
评论
0/150
提交评论