站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络媒体 > Flash >  正文

仿小小的控制菜单 第12章 XML
  2008年02月18日17:04:04  评论(0条) 字体:[ ]
相关热点:

XML是一种标记语言,通常用于储存,组织和传输数据  
XML文档主要由一系列的元素(elements)和属性(attributes)组成,看下面一个XML的例子:  


Colin   Moock
O''Reilly

这个例子就是由元素   BOOK,   TITLE,   AUTHOR,   PUBLISHER   组成的  
在元素里就包含了一个属性:SALUTATION  
这些元素怎么让浏览器解释是什么意思呢?它需要DTD,一套决定这些标记的意义的规则。(例如我们常听说的WML、SVG,它们都是XML,但对应不同的DTD)  
XML与HTML想比要求格式更严格,格式要求:
*   tags   一定要嵌套   (就是说有就一定要有)
*   一定要有一个根元素   (例如例子中的   BOOK)
*   开始部分要用XML声明标记   :  
但是AS里面的XML不需要DTD(这就是我说FLASH里面用XML不难的原因,哈哈)  
从我们面向对象的角度来看,我们XML的内容可以当做为对象,下图就是我们建立XML对象的层次结构  

FLASH已经内建有XML类让我们可以定义自己的XML对象,同时XML对象还有很多方法。  
我们还是更进一步用例子分析吧,如果我们建立了如上图的XML对象,那么FLASH首先会自动建立一个元素document.下面才是我们自己的元素。  
本来是第一个元素的BOOK成为了document.第一个节点(node),不过我们把它继续当我们XML数据的根也无妨  
当一个节点包含于另一个节点时,这个节点称为另一节点的子节点(child),反之另一节点称为其的父节点(parent)  
例子中BOOK就是document.child,document.是BOOK的parent  
再看图,BOOK有7个子节点,是不是和你想象不同?多了四个节点#text,因为FLASH把标记之间的空格和回车也读成一个节点了。  
几个子节点的关系成为兄弟(siblings),如果要找AUTHOR的下一个兄弟(next   sibling),FLASH就会给你找来#text  
这可不是我们想要的,解决的方法
*   直接在XML里面把空格回车都删除掉,就是说一个TAG紧挨着一个
*   用AS把无用的子节点删除
*   在FLASH读入XML源数据之前,将该XML对象的一个属性ignoreWhite设置为true,但是该属性只在R41版本的PLAYER生效(注:网上可以更新的版本为R41,但是随FLASH附带的FLASHPLAYER的版本是R30)  
再回到我们的例图,三个子节点下面还有子节点,最尾的节点也可以叫叶节点。  
但是图里面还有个东西我们没找到,就是AUTHOR的属性SALUTATION,属性不是该节点的子节点,要访问我们属性,要用XML.attributes  
概念先说这么多,现在看看我们怎么把XML源程序输入进FLASH  
首先定义一个新的XML对象了:
mydocument.nbsp=   new   XML();  
这个对象是空的,我们通过appendChild,   par***ML,   和   load   三种方法来输入数据
当然我们也可以在定义的时候就输入数据:mydocument.nbsp=   new   XML(''

hello   world!

'');  
这时候我们的mydocument.有了一个叫P的子节点,P的叶节点是hello   world!
之后我们就可以访问这个XML对象了,firstChild这个XML属性指向第一个子节点,childNodes是XML对象的子对象,指向所有的子节点
mydocument.firstChild   //   Accesses   P
mydocument.childNodes�   //   Also   accesses   P   两个AS语句指向的都是节点P
要访问叶节点的内容需要属性nodevalue
我们要显示P节点的子节点的内容,就要写成:trace(mydocument.firstChild.firstChild.nodevalue);  
要给它赋值:
mydocument.firstChild.firstChild.nodevalue   =   "goodbye   cruel   world";  
要删除P节点,用方法removeNode:
mydocument.firstChild.removeNode();  
新建一个节点叫P,用方法createElement创建元素:
newElement   =   mydocument.createElement("P");  
再将该元素加进去作为一个节点,用方法appendChild:
mydocument.appendChild(newElement);  
做一个叶节点方法类似:
newText   =   mydocument.createTextNode("XML   is   fun");  
mydocument.firstChild.appendChild(newText);  
更详尽的方法还是查阅AS字典吧.


责任编辑:水色皇朝

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱
    评论加载中…

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008