• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 初中学习 > 正文

    实现vlan间通信的方法【Flash与XML通信方法及其实现】

    时间:2018-12-23 19:47:49 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:本文阐述了如何利用Flash访问XML文档,实现XML文档中每个元素和节点在Flash中的准确调用和显示。   关键词:Flash XML 对象 节点   
      引言
      
      随着计算机网络技术的发展的日新月异,Flash作为网络上的优秀软件和语言,有着其他软件无法比拟的优越性,而XML目前正在成为各种数据特别是文档的首选格式,使用它,就可以以容易且一致的方式格式化和传送数据。因此,对两者之间交互和互通的探索及利用尤为重要。
      
      1. Flash和可扩展标记语言 XML
      
      Flash作为矢量化的Web交互式动画制作工具,在Web上发布交互式动画,目前正被大量地应用于动画、游戏、用户界面、Internet应用程序等等的制作之中。
      可扩展标记语言(XML,Extensible Markup Language)是一门新兴的面向Internet应用的标记语言。XML经常被运用在Web服务中,比如网站的建设中。另外,它可以用于制作应用程序之间的数据交换以及配置系统等等,使用XML配置文件的系统应用程序能够方便地处理所需数据,不用像其他应用那样要经过重新编译才能修改和维护系统。
      很多人已经意识到将数据发布为XML有很多优势,由此也推动了XML数据源的大量应用。人们正在或者已经将业务文档、数据库和业务间的通讯等信息源转换为使用XML作为表示格式。
      
      2.运用Flash访问XML文档
      
      2.1访问途径
      ActionScript中的XML对象提供了访问XML文档的途径,使用点语法和XML对象的属性可以方便地访问XML文档(既可以是存储XML数据的文本文档,也可以是XML格式的文档)中的具体数据,并可以在Flash中将外部XML文档中的数据显示出来。
      2.2 XML文档实例
      下面是一个XML的例子:
      <teacher>
      <Tnumber>201</Tnumber>
      <Tname>Tommy</Tname>
      <Sex>male</Sex>
      <courses>
      <Bcourses>Mathematics</Bcourses>
      <Pcourses>CAD</Pcourses>
      </courses>
      <Positions>Lecturers</Positions>
      </teacher >
      上例的XML文档定义了一个teacher对象,在teacher对象下面包含5组信息,分别是Tnumber、Tname、Sex、courses和Positions,在courses下面又分为Bcourses、Pcourses这2类。该数据结构如图1所示。
      
      2.3 XML对象和类
      XML对象提供了众多的属性、方法和事件,在Flash中调用XML文档需要用到XML类和XMLNode类中的一些方法和属性。下面我把用到的方法和属性列出来并在下文中予以详细解释:
      XML.load(″xml文档的地址″);//加载指定的xml文档
      XML.onLoad=function(success:Boolean){};//成功加载了xml文档时调用 XML.childNodes;//返回指定xml文档对象的子级的数组
      XMLNode.ignoreWhite;//处理xml文档中的空白,设为true时,忽略空白,默认值为false
      XMLNode.nodeValue;//返回XML对象的节点值
      XMLNode.nodeType;//返回节点或节点文本的属性
      XMLNode.nodeName;//返回XML对象的节点名称
      2.3.1 load方法
      XML的load方法用于从指定的URL中加载XML文档,并使用下载的XML数据替换指定XML对象的内容。使用load方法加载的XML文档须与Flash影片处于相同的文件夹中。如下为AS创建并从外部文本文档中加载XML对象:myXML=new XML();
      myXML.load(″XMLData.txt″);
      如下所示的AS创建并从外部XML文档中加载XML对象:myXML=new XML();
      myXML.load(″XMLData.xml″);
      使用XML.load命令后并不能立即将外部文档中的数据加载到影片中,如果直接引用文档中的数据可能会得不到需要的结果。要判断XML文档是否已经加载到影片中,可以使用onLoad事件。
      2.3.2 onLoad事件
      当从服务器上接收XML文档时,由Flash Player调用XML的onLoad事件。调用onLoad时自动返回一个参数success,如果成功地收到XML文档,则success参数为true;如果未收到该文档,或从服务器上接收响应时出现错误,则success参数为false。
      onLoad事件的使用如下:
      myXML = new XML();
      myXML.load(″XMLData.txt″);
      myXML.onLoad = function() {
      if (success == true) {
      trace(″XML is successfully loaded″);
      } else {
      trace(″Something is wrong with the XML document″);
      }};
      2.3.3 childNodes属性
      XML的childNodes属性返回指定XML对象的子级的数组,数组中的每个元素都是对表示子节点的XML对象的引用,也就是说childNodes属性将XML对象当前级的子级节点作为一个数据返回。与数据一样,使用方括号可以访问数据的每一个元素。
      先将外部文档XML对象其加载到影片中的XML对象中,运行以下脚本,输出窗口中将显示整个XML对象:
      myXML = new XML();
      myXML.load(″XMLData.xml″);
      myXML.onLoad = function(success) {
      if (success == true) {
      trace(myXML.childNodes[0]);
      }};
      将上面的trace语句换成如下:trace(myXML.childNodes.[0]childNodes[0]);运行脚本,但是输出窗口中并没有显示。其实不是没有显示,而是因为<teacher>后面有一个换行,Flash不能识别换行,而是将空行也作为XML对象的一个节点了。可以运行以下脚本:trace(myXML.childNodes.childNodes[1]);输出窗口中显示:<Tnumber> 201 </Tnumber>。如果Flash Player不能识别空格和空行,我们就要使用ignoreWhite属性来处理空白节点。
      2.3.4 ignoreWhite属性
      ignoreWhite属性的默认设置为false,当设置为true时,在分析过程中将放弃仅包含空白的文本节点。要解决前面遇到的问题,要将XML对象的ignoreWhite属性设置为true。在上例中使用如下的AS将在输出窗口中返回<Tnumber> 201 </ Tnumber>:
      myXML = new XML();
      myXML.load(″XMLData.xml″);
      myXML.ignoreWhite = true;
      myXML.onLoad = function(success) {
      if (success == true) {
      trace(myXML.childNodes.childNodes[0]);
      }};
      如果要返回 CAD ,就需要如下的AS:trace(myXML.childNodes[0].childNodes[3].childNodes[1]);如果要返回节点中的文本字段,就需要使用nodeValue属性。
      2.3.5 nodeValue属性
      nodeValue属性返回XML对象的节点值。如果XML对象为文本节点,则nodeValue为该节点的文本;如果该XML对象是XML元素,则其nodeValue为null。要得到文本CAD,可以使用如下的AS:trace(myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeValue)。
      2.3.6 nodeType属性
      nodeType是一个只读属性,值为1表示XML元素,为3表示文本节点。
      trace(myXML.childNodes[0].childNodes[3].childNodes[1].nodeType);//返回1;
      trace(myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeType);
      //返回3。
      2.3.7 nodeName属性
      nodeName属性返回XML对象的节点名称,如果该XML对象是一个XML元素(nodeType==1),则nodeName是表示XML文件中节点的标签名称;如果该XML对象为文本节点(nodeType==3),则nodeName为null。
      trace(myXML.childNodes[0].childNodes[3].childNodes[1].nodeName);
      //返回Pcourses;
      trace(myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeName);
      //返回null。
      
      结束语
      
      使用XML表示的数据结构和文档一目了然,在Flash中使用XML对象可以方便地解析XML的数据结构,以访问需要的节点或数据。XML可以使用简单的文本编辑器进行编辑,程序员可以很容易地编写出访问XML格式数据的程序。这也为使用Flash制作与服务器交互的影片提供了一条捷径。
      
      参考文献:
      [1][美]Fabio Arciniegas著.天宏工作室译.XML开发指南.清华大学出版社,2003年1月.
      [2]刘云生,卢正鼎,卢炎生著.数据库系统概论.华中理工大学出版社,1998年4月.
      [3]要步轩,梁子等编著.Flash MX完全使用教程.电子工业出版社,2003年1月.

    推荐访问:通信 方法 Flash XML

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章