下面以简历的 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<tmpL; i++) {
项目列表.push(tmpA[i].nodeName);
}
//第一个子节点数据作为子节点
for (var i:Number = 0; i<basicInfoL; 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<myWorksL; 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 基本资料;
} |
|