我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 图型图像 > FLASH > FLASH+XML求职简历制作教程
热门文章排行
热门文章排行 Photoshop制作精美的简历封面(10-12)
在Flash课件中正确调用SWF文件(11-25)
巧用Photoshop徒手绘制扇子(10-19)
CorelDRAW12循序渐进-制作文本效果(12-29)
消除文字勾边后产生毛刺的小技巧(06-14)
精采文章排行
精采文章排行 GIF动态图片的修改(11-07)
Q版人物绘制全过程(11-07)
Flash互动电子地图制作手册——入门(11-01)
Flash 8.0前瞻——揭开8 ball的薄面(10-24)
土人AS入门教程对象篇(10-24)
技术专题推荐
网管论坛交流
 

FLASH+XML求职简历制作教程 

作者:佚名   来源:Linux 宝库   点击:   日期:2006-11-25


-->
前几天一个朋友介绍了一家公司。结果发现自己少了三样东西:简历、技术性强的作品、自信。于是想做个“技术性强的简历”。这样也能有些底气,多些自信。在别人问我懂不懂OOP的时候,就不用说“学是学过,没做过”了。

  先把学习过的AS2.0面向对象编程重新过一遍消化吸收,然后用两天时间做了这个简历。照例提供源文件下载。第一次“OOP”,写到最后代码有点乱了。


  这两天写代码写到头痛。借一本书上的话:“编程对很多人来说是一件很枯燥、很难的事情,当把它当成一种强烈的兴趣时,编程便是一件非常有趣的事情。”当调试半天的bug终于解决当复杂功能终于实现的时候,那种喜悦绝对是一种享受。


  这喜悦对我来说太过奢侈。我憎恶现在的教育制度,让我把时间全浪费在毫无兴趣更无用处的东西上,憎恶如此看重文凭的病态的社会让我不得不对自己的憎恶俯首称臣!


做这个简历的时候,一个下载了愚人部落主页源代码的朋友问我关于XML的问题。我说你等等,做好手头的东西我写个教程给你。现在就以这个简历的XML为例,说一下如何解析XML。(→ 查看XML)


   XML文件就像一个树状的目录。可以把第一行当作它扎根的“土地”。



   XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点。我们在FLASH里使用XML对象解析XML的时候,this 代表整个XML文件,它的根节点就是 this.firstChild 。 this.firstChild.childNodes 则返回由根节点的所有子节点组成的节点数组。


FLASH + XML 求职简历 制作教程(一)


  每个子节点又可以有自己的子节点。节点编号由0开始,根节点的第一个子节点为 this.firstChild.childNodes[0],它的子节点数组就是this.firstChild.childNodes[0].childNodes 。 


FLASH + XML 求职简历 制作教程(一)


  继续深入到没有子节点的单一节点,比如根节点第一个子节点的第二个子节点 this.firstChild.childNodes[0].childNodes[1],它返回的是一个XML对象(Object) 。这里需要特别注意,节点标签之间的数据本身也视为一个节点 this.firstChild.childNodes[0].childNodes[1].firstChild ,而不是一个值。


FLASH + XML 求职简历 制作教程(一)


  我们解析XML的最终目的当然就是获得数据的值:this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue 。注意!不是 this.firstChild.childNodes[0].childNodes[1].nodeValue !节点名称有时也是我们需要的数据: this.firstChild.childNodes[0].childNodes[1].nodeName 。注意比较获得节点名称和节点值的不同。


FLASH + XML 求职简历 制作教程(一)


  除了作为子节点,数据还可以作为节点属性。节点属性写在节点标签内部:<节点 属性1="属性值" 属性2="属性值"...... >节点值 。如果数据全作为属性而没有节点值,则可以写成 <节点 属性="属性值" /> 的形式,而不用写成 <节点 属性="属性值"> 。 注意节点必须关闭,写成 <节点 属性="属性值"> 就不对了。


   节点的所有属性返回一个通用对象(Object),比如根节点第六个子节点的第三个子节点的所有属性为: this.firstChild.childNodes[5].childNodes[2].attributes 。 获得其中的“地址”属性: this.firstChild.childNodes[5].childNodes[2].attributes.地址 。


FLASH + XML 求职简历 制作教程(一)


  比较而言,数据作为属性的方式更好。因为文件相对比较小,而且避免深入更多层子节点,解析速度更快。


   下面以简历的 JobXMLModel类 (模型)看看在flash里具体的解析。 JobXMLModel类 继承XML类,首先在构造函数里设置 ignoreWhite 属性为true忽略XML文件中多余的空格。


//构造函数
public function JobXMLModel() {
  ignoreWhite = true;
}
//覆盖XML类的 onLoad 事件
private function onLoad():Void {
   //变量tmpA存储根节点的节点数组。
  var tmpA:Array = this.firstChild.childNodes;
   //把tmpA的长度存储在tmpL变量里。
  var tmpL:Number = tmpA.length;
  //以根节点第一、第六个子节点为例,同样存储数组长度变量
  var basicInfoL:Number = tmpA[0].childNodes.length;
  var myWorksL:Number = tmpA[5].childNodes.length;
  //根节点子节点的节点名称存入数组
   for (var i:Number = 0; i     项目列表.push(tmpA[i].nodeName);
   }
   //第一个子节点数据作为子节点
  for (var i:Number = 0; i    //单一节点返回一个XML对象,用一个变量tmpO存储它
    var tmpO:Object = tmpA[0].childNodes[i];
    //把每个节点的名称和节点值作为通用对象(Object)的属性存在数组里
    基本资料.push({title:tmpO.nodeName, content:tmpO.firstChild.nodeValue});
  }
   //第六个子节点数据作为节点属性
  for (var i:Number = 0; i    var tmpO:Object = tmpA[5].childNodes[i];
    //把节点名称和节点属性作为通用对象的属性存在数组里
    我的作品.push({url:tmpO.attributes.地址, name:tmpO.nodeName, desc:tmpO.attributes.描述});
  }
  //把onLoad事件广播出去,由JobPresenter类(表示器)接收数据加载视图类(JobView )
  broadcastMessage("onXMLLoaded");
}
//隐式获取函数,供表示器接受数据
public function get basicInfo():Array {
  return 基本资料;
}


 


 





文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·消除文字勾边后产生毛刺的小技巧 · 解决COREDRAW9与双核CPU冲突的技巧 5
·CorelDRAW入门与进阶实例:8.2椭圆按钮制 ·CorelDRAW印前分色新手上路
·IllustratorCS制作刺绣效果 ·CorelDRAW使用技巧-如何在CorelDRAW中虚

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。