中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > XML
XML与Flash5
作者:yestar2000 时间:2001-12-23 11:46 出处:互联网 责编:chinaitpower
              摘要:XML与Flash5
  1995年Flash问世,最初它在互联网上只作于简单的动画设计,经过Macromedia的扶持,它已经发展成为了可制作丰富的图形及交互的站点的强而有力的工具了。在1999年,在Flash5身上许多创建图形的运用以及函数的功能得以全面的改善,而其中在与其它技术的联合运用上的改良则是更为的有价值。在下面,我们将介绍一些Flash与其它技术联合使用创建可更
新的动态站点的技术,主要的是介绍与XML的配合,当然,我们还将顺便连带介绍一些与服务器端相关的诸如PHP、ASP等结合的知识。

利用程序可以很容易的更新你的Flash网站,在Flash运行的时候信息会跟随着动态的变化,而你可以在Flash中利用这些信息创建你自己的独特设置。我们有许多的方法来更新Flash的站点而无需直接通过Flash变更,通过与其它技术的联合是既简单而又快捷方便的。我们可以通过导入.txt文本文件、XML文件甚至可以利用服务器端脚本语言直接从数据库抽取数据。(注意:本文后面提及的XML皆是与Flash的结合而不是在其它的环境或是平台上,与其它运行环境相比,XML在Flash里几乎没有多少的区别。)

简要目录:
1、  什么是XML
2、  为什么要使用XML
3、  XML适应范围
4、  提炼XML
5、  Flash中使用XML的局限
6、  数据结构
7、  XML执行

1、什么是XML?
XML是一种可以扩展的数据描述语言,它可以让你自由的定义自己的数据结构,甚至比其它的一些语言(如PHP,C++等)更为的方便与有效。

2、为什么及何时运用XML?
或许你会问,当HTML早已广泛运用于网页数据交换时我们又何需去用XML呢?其实XML与HTML是有着相当差别的。一个HTML文件只能包含一些固定的HTML标记(大概一共也不过70个左右),而一个XML文件可以包含任何自由的标记组织信息,我们能用自己的标记来创建自己特殊的数据结构。一个共用的数据结构总是用来描述一类的数据信息。
判定什么时候运用XML确实是一个比较难以回复的问题,XML是一种与平台无关的语言,你可以将XML运用于任何的操作平台,诸如Microsoft的平台(NT)、Linux或是Apple平台,这就意味着XML可以进行不同平台之间的数据交换。

接下来的一对方案讲述了XML为什么是一种好的选择方式:

在不同的平台进行独立的数据交换
在一些需要在不同平台上进行数据交换的场所我们可以运用XML来达到计算机之间的数据传递,利用XML制作的网页能够使得这些信息被收接而不管这些信息在哪种位置,这对于全球化的企业与客户等众多方面的数据传输是有着相当大的好处的。

共众化的数据结构信息系统
为那些时常需要进行数据接收与更新的信息创建一种公共的数据结构将极大增强企业、商业及个人之间的交互性,所有这些企业、商业及个人都将因为这种数据结构而深受影响,他们能够在任何的平台或是他们需要的方面将XML转换成他们需要的信息。

尽管如此,XML却也并非是最好的选择而一定要引入到Flash之中的,根据运用的要求或许有更快更有效的方法来实现它们。

这里有几点当我决定使用XML时在我的脑海里已经形成的想法:
1、如果能够通过一种简单的交替加入法而实现的而并非一定需要转成XML格式的,那么,请直接利用Flash去完成而不要将它们转成XML格式。
2、如果你的数据需要在不同的平台或是将采用不同的方式进行调用的,那么XML或许是一种比较好的选择。仔细想想以后的建设及可能的运用,将你的数据转化成XML格式将使你以后的操作变得简单而轻松。
3、用XML描述的数据是极具规则也是非常容易及能够被快速修改的,XML的一大特点即:它具有极强的可读性,能够被其他人快速的理解。
当然XML对于其它方面可能也是很好的选择,但是以上几点是我在使用Flash时最为通用的规则。

XML的可选择性
有一些情况可以在Flash中选择使用XML,而在这些情况中它将改编你的应用程序使得它们更快,更通畅。不过得先确定这种方法是一种比其它方式更为正确的选择,否则,你或许可以找到其它另外的方式来使得你的应用程序更为的稳定与快速。
例如其它的一些选择:
1、你可以导入.txt的文本文件
2、通过例如name=Value&name1=value1…的方式来联接包含数据信息
3、用服务器端的程序语言(ASP、PHP等)从数据库中直接调用信息
4、运用HTML以及JavaScript来与Flash结合使用
你需要作以考虑与决定哪一种方式更适合你当前的应用程序,我们可以从速度、性能及数据的准确和有效性来评测。举例说明:如果你每天都有大量的数据信息需要更新,或许可以运用.txt文件来进行维护,.txt文件的被导入速度将要比XML的快出许多。
XML文件信息需要被下载与解析以后才能被Flash所运用,而一个比较大的XML文档将会使会拖垮你的应用程序,在服务器上从一个.txt文件中导入同样的信息将是快速而可以被容忍的。
XML与Flash的合并使用严格说起来更像是场灾难,由于Flash的XML解析器对于XML的支持性有较大限制,所以,为了Flash应用解析器能够解析XML文件,XML文件必须进行修正,而同样的原因,这也就造成了拖慢程序的运行速度。
由于Flash的XML解析器的漏洞,在Flash中通常就用其它的方式来进行数据的交换了。

  精炼XML

不过在一些方面在Flsah中使用XML比起其它方式仍有着巨大的益处的,不过你总得想着考虑一些方法去“精炼”它们,如:数据装载、服务装载、每日最新信息及效率和其它等。

下面通过一个简单的例子来阐述如何提高它们的速度与效率:
如果你是一名商务综合信息管理员,你的站点每隔一两天都会有诸多的信息需要更新,为了更新你的站点,你把信息加入到数据库的后端接口上,那么每一次浏览你的页面时,Flash调用一PHP页面,而PHP页面可以从数据库中读取数据并将它们返回成Flash能够接收的通用的XML格式。
如果这些信息每天都有非常大的访问量,每次点击这些信息Flash都将从被格式化成XML的数据文档中接收数据。如果你也提供HTML版本的网点的话,XML将被Flash解析成一种通用的格式,而利用PHP代码就可以将数据库的数据转化成Flash与HTML都可以接收的版本,然后XML在Flash中被修改成能被用户阅读的形式。当Flash接收这些XML数据信息之前必须去除那些“空格”部分,由于Flash的XML解析器不认“空格”,如果在XML数据信息的目录树中有空白部分,那么在Flash中数据显示样式将会是一团糟的。
我们现在将讨论一些改进的方法,这些方法将加快数据从服务器上装载的进程进行使其更为的高效。
注意:这个例只是为了说明XML与Flsah的结合运用,或许有其它更好的方法来解决这些问题。
一个主要的改进是利用PHP页面对数据信息的处理,当你每次更新完数据以后利用PHP在服务器上创建一个.XML的文件,这种方式将保证数据的可用性。
如果数据库离开了PHP(当然还有其它服务器端程序的可能性),那要想要从服务器上获取是几乎不可能的,尤其是你每分钟超过3000次以上的点机率时。它也仅仅只是一种资源方式用来连接服务器与数据库。
  Flash将读取这个去除了空格的具有能用性的XML文件,你可以考虑去使用除节点以后的其它属性,不过XML文件节点数越多就意味着Flash需要花更多的时间去解析它,而做同样的事情PHP页面的解析工作将比Flash快出好多倍。
如果你在其它地方想使用这个XML数据结构,那么PHP的代码又是极其容易被编辑修改的,就是存在这种优势,所以同样的数据库的数据能够被输出成你需要的各种各样的不同的版本。
这样的改进将大大提高网站的承受能力,减轻服务端与客户端的负担,改善其速度、效率及正确性。
Flash中使用XML的缺陷
There are a few pitfalls that should be kept in mind when developing with Flash and XML.
Flash中使用XML存在着一定的缺陷性:
1、Flash的播放器会因解析XML文件而被“挂起”
Flash播放在解析XML文档的时候将要暂停,其它任何的操作都将会被“挂起”,如果你的XML文档过于“庞大”,那么你的用户就不得不去等待。由于Flash不是一种流式媒体,因些当解析的时候就无法操作其它事物。
2、XML文件的空白问题
Flash解析器无法辨认XML文件中的空白标签,如果它发现有类似Tabs或是断行等其它情况,那么它将使得你的XML目录树出现残缺的问题。XML是用来创建数据结构以便你的信息能够被容易的读取,如果加入了空白的节点,那么读取信息就会出现问题。
上述的问题在5.0.41以前版本中出现,而此问题在FlashPlayer播放器5.0.42+的修正版中已经利用ignoreWhiteespace()这个函数进行弥补。尽管这个问题在新版的播放器得以改进,不过除非是建立类似于企业介绍网这样的小型站点还比较容易掌握,否则也将仍是一个问题之所在。因为大部的人都不知道已经有新版本的播放器已经存在,他们不一定会去使用,而你也无法推测到底有多少的人在使用最新的版本的播放器。
我建议XML文件最好在被Flash导入之前就先被解析,这将极大加速XML文件的解析进程,当然你并非一定要让所有的节点或是空格都通被解析与移除,在导入服务器端前你可以通过服务器端的脚本语言来移除.xml中的空格内容。
3、节点导航
节点导航可能会因XML数据的大小而造成一些麻烦,例如运用诸如parentChild.parentChild.nodeName() 这样的节点类型就可能会出现一些容易丢失的困惑。
我宁愿导入XML数据后将它们放入数组内当我解析XML文件的时候,这样有利于以后再次调用这些数据信息。
4、特定的Flash的XML
为了得到高效率,我们必须去创建(至少去修改)能够被Flash读取的符合Flash解析规律的特定的XML文档,而在每一组的数据结构中或许只有一点点细小的差别,这正是运用XML或许是一种能够提高速度、可靠性与效率的原因。

数据结构
如何建立有组织的XML结构文档能够加速解析减少解析时间,利用XML的属性将每个节点的信息区分就是一种很好的加速方法。比如:
<month name="一月">
<day>
<date>一号</date>
<name>星期四</name>
<time>下午一点</time>
<comment>现在好热呀</comment>
</day>
<day>
<date>五号</date>
<name>星期一</name>
<time>早上六点</time>
<comment>我还想睡觉呢</comment>
</day>
</month>
上面的数据每一部分的核心信息都使用了一个节点,它能够很容易的被我们读懂与理解,当然也能够被Flash所接受,而下面的数据结构每个属性包含了更多的信息,同样也就加速了解析的进程。显而易见,读取6个节点的信息花费的时间要又一个节点的时间要来得长,因而下面的数据结构应该说更适合于Flash的解析。
<month name="一月">
<day date="一号" name="星期四" time="下午一点" comment="现在好热呀" />
<day date="五号" name="星期一" time="早上六点" comment="我还想睡觉呢" />
</month>
我还没有构思出后面的这种数据结构主要去运用于哪里,这主要取决于在运用时需要的数据而定。你们需要进一步的研究XML与Flash的结合,设计并进行相应的测试出适合你们的高效率的数据结构。

  XML执行
XML在Flash中开始执行有诸多的方法,载入XML数据信息,越大的XML数据信息将让Flash解析的越久,当然意味着要让客户等待得越久。如果你的数据直接从数据库中读取,将它们在导入Flash之前转换成XML,并确保此XML文件的格式正确,那么在Flash中就可以直接调用这些新的数据信息了。
我想你最好先确定你的应用程序中必须得用到XML,如果它不是必须的,我想你还是考虑用其它的来替换它。不过,无论怎么说起来,对于不同的独立平台的数据交换XML无疑是最佳的选择。
总体来说XML的解析程序能够比较容易将数据加入到Flash中,作为长久的进度打算来看,这却是一种最棒的选择,在以后的日子里你能够根据你自己的需要来随意的扩展你自己的代码,而那又将是件极其简单的事情。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有