- 浏览: 67231 次
- 性别:
- 来自: 北京
最新评论
-
_MyCould:
Flex Module基础 -
szlaptop:
这个正式我一直想的,楼主,能帖图上来看看吗?谢谢
最近完成的某系统的报表组件 -
wfzhanga:
楼主整理的不错,能不能把代码传上去啊。如果方便请帮我传一下啊, ...
flex ToolTip专题 -
bence:
总结的很好,谢谢分享
Flex Metadata Tag高级应用 -
fansfirst2008:
楼主太强了,不仅把东西讲解得深入浅出,而且写的文字表达很漂亮! ...
flex itemRenderer使用(一)内联渲染器
FLEX处理XML,ECMAScript For XML(e4x)
使用 appendChild() 方法可为 XML 分配一个新的子节点
使用 @ 和 . 运算符不仅可以读取数据,还可以分配数据,如下所示:
使用 for 循环可以循环访问 XML 的节点,如下所示:
可将 XML 文本赋予 XML 对象,如下所示:
象的实例:
要从 URL 加载 XML 数据,请使用 URLLoader 类,如下面的示例所示:
使用 prependChild() 方法或 appendChild() 方法可在 XML 对象属性列表的开头或结尾
添加属性,如下面的示例所示:
使用 insertChildBefore() 方法或 insertChildAfter() 方法在指定属性之前或之后添加
属性,如下所示:
它变量)传递数据:
可以使用 + 和 += 运算符连接 XMLList 对象:
这将对 XMLList 对象 xList 进行如下设置:
myXML.book 是一个 XMLList 对象,它包含名为 book 的 myXML 对象的子属性。
myXML..lastName 是一个 XMLList 对象,它包含名为 lastName 的任何后代属性。
parent() 方法返回 XML 对象的父项。
可以使用子级列表的序数索引值访问特定的子对象。例如,假设 XML 对象 myXML 有两个名
为 book 的子属性。每个名为 book 的子属性都有一个与之关联的索引编号:
myXML.book[0]
myXML.book[1]
要访问特定的孙项,可为子项和孙项名称同时指定索引编号:
myXML.book[0].title[0]
不过,如果 x.book[0] 只有一个子项名为 title,则可以省略索引引用,如下所示:
myXML.book[0].title
同样,如果对象 x 只有一个 book 子对象,并且如果该子对象只有一个 title 对象,则可以同
时省略两个索引引用,如下所示:
myXML.book.title
可以使用 child() 方法导航到名称基于变量或表达式的子项,如下面的示例所示:
使用 @ 符号(属性标识符运算符)可以访问 XML 或 XMLList 对象的属性,如下面的代码
所示:
可以一起使用 * 通配符和 @ 符号来访问 XML 或 XMLList 对象的所有属性,如下面的代码
所示:
可以使用 attribute() 或 attributes() 方法访问 XML 或 XMLList 对象的特定属性或
所有属性,如下面的代码所示:
请注意,还可以使用以下语法访问属性,如下面的示例所示:
可以使用括号运算符 — ( 和) — 过滤具有特定元素名称或属性值的元素。请考虑下面的
XML 对象:
遍历 XML 结构以下表达式都是有效的:
如果试图按照可能不存在的属性或元素过滤,Adobe Flash Player 将引发异常。例如,以下
代码的最后一行产生一个错误,因为第二个 p 元素中没有 id 属性:
var doc:XML =
<body>
<p id='123'>Hello, <b>Bob</b>.</p>
<p>Hello.</p>
</body>;
trace(doc.p.(b == 'Bob'));
为了避免这些错误,可以使用 attribute() 和 elements() 方法来识别具有匹配属性或元素
的属性,如下面的代码所示:
还可以使用 hasOwnProperty() 方法,如下面的代码所示:
ActionScript 3.0 包含用于循环访问 XMLList 对象的 for..in 语句和 for each..in 语
句。例如,我们来看 XML 对象 myXML 和 XMLList 对象 myXML.item。XMLList 对象
myXML.item 由 XML 对象的两个 item 节点组成。
for..in 语句用于循环访问 XMLList 中的一组属性名称:
var myXML:XML = <order> <item id='1'> <menuName>burger</menuName> <price>3.95</price> </item> <item id='2'> <menuName>fries</menuName> <price>1.45</price> </item> </order>
trace(myXML.item[0].menuName); // 输出:burger trace(myXML.item.(@id==2).menuName); // 输出:fries trace(myXML.item.(menuName=="burger").price); // 输出:3.95
使用 appendChild() 方法可为 XML 分配一个新的子节点
使用 @ 和 . 运算符不仅可以读取数据,还可以分配数据,如下所示:
myXML.item[0].menuName="regular burger"; myXML.item[1].menuName="small fries"; myXML.item[2].menuName="medium cola"; myXML.item.(menuName=="regular burger").@quantity = "2"; myXML.item.(menuName=="small fries").@quantity = "2"; myXML.item.(menuName=="medium cola").@quantity = "2";
使用 for 循环可以循环访问 XML 的节点,如下所示:
var total:Number = 0; for each (var property:XML in myXML.item) { var q:int = Number(property.@quantity); var p:Number = Number(property.price); ….. { trace("Total: $", total.toFixed(2));
可将 XML 文本赋予 XML 对象,如下所示:
var myXML:XML = <order> <item id='1'> <menuName>burger</menuName> <price>3.95</price> </item> <item id='2'> <menuName>fries</menuName> <price>1.45</price> </item> </order>如下面的代码片断所示,还可以使用 new 构造函数从包含 XML 数据的字符串创建 XML 对
象的实例:
var str:String = "<order><item id='1'><menuName>burger</menuName>" + "<price>3.95</price></item></order>"; var myXML:XML = new XML(str);
要从 URL 加载 XML 数据,请使用 URLLoader 类,如下面的示例所示:
import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; var externalXML:XML; var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest("xmlFile.xml"); loader.load(request); loader.addEventListener(Event.COMPLETE, onComplete); function onComplete(event:Event):void { var loader:URLLoader = event.target as URLLoader; if (loader != null) { externalXML = new XML(loader.data); trace(externalXML.toXMLString()); } else { trace("loader is not a URLLoader!"); } }
使用 prependChild() 方法或 appendChild() 方法可在 XML 对象属性列表的开头或结尾
添加属性,如下面的示例所示:
var x1:XML = <p>Line 1</p> var x2:XML = <p>Line 2</p> var x:XML = <body></body> x = x.appendChild(x1); x = x.appendChild(x2); x = x.prependChild(<p>Line 0</p>); // x == <body><p>Line 0</p><p>Line 1</p><p>Line 2</p></body>
使用 insertChildBefore() 方法或 insertChildAfter() 方法在指定属性之前或之后添加
属性,如下所示:
var x:XML = <body> <p>Paragraph 1</p> <p>Paragraph 2</p> </body> var newNode:XML = <p>Paragraph 1.5</p> x = x.insertChildAfter(x.p[0], newNode) x = x.insertChildBefore(x.p[2], <p>Paragraph 1.75</p>)如下面的示例所示,还可以使用大括号运算符({ 和 })在构造 XML 对象时按引用(从其
它变量)传递数据:
var ids:Array = [121, 122, 123]; var names:Array = [["Murphy","Pat"], ["Thibaut","Jean"], ["Smith","Vijay"]] var x:XML = new XML("<employeeList></employeeList>"); for (var i:int = 0; i < 3; i++) { var newnode:XML = new XML(); newnode = <employee id={ids[i]}> <last>{names[i][0]}</last> <first>{names[i][1]}</first> </employee>; x = x.appendChild(newnode) }可以使用 = 运算符将属性 (property) 和属性 (attribute) 赋予 XML 对象,如下所示:
var x:XML = <employee> <lastname>Smith</lastname> </employee> x.firstname = "Jean"; x.@id = "239"; 这将对 XML 对象 x 进行如下设置: <employee id="239"> <lastname>Smith</lastname> <firstname>Jean</firstname> </employee>
可以使用 + 和 += 运算符连接 XMLList 对象:
var x1:XML = <a>test1</a> var x2:XML = <b>test2</b> var xList:XMLList = x1 + x2; xList += <c>test3</c>
这将对 XMLList 对象 xList 进行如下设置:
<a>test1</a> <b>test2</b> <c>test3</c>
myXML.book 是一个 XMLList 对象,它包含名为 book 的 myXML 对象的子属性。
myXML..lastName 是一个 XMLList 对象,它包含名为 lastName 的任何后代属性。
parent() 方法返回 XML 对象的父项。
可以使用子级列表的序数索引值访问特定的子对象。例如,假设 XML 对象 myXML 有两个名
为 book 的子属性。每个名为 book 的子属性都有一个与之关联的索引编号:
myXML.book[0]
myXML.book[1]
要访问特定的孙项,可为子项和孙项名称同时指定索引编号:
myXML.book[0].title[0]
不过,如果 x.book[0] 只有一个子项名为 title,则可以省略索引引用,如下所示:
myXML.book[0].title
同样,如果对象 x 只有一个 book 子对象,并且如果该子对象只有一个 title 对象,则可以同
时省略两个索引引用,如下所示:
myXML.book.title
可以使用 child() 方法导航到名称基于变量或表达式的子项,如下面的示例所示:
var myXML:XML = <order> <book> <title>Dictionary</title> </book> </order>; var childName:String = "book"; trace(myXML.child(childName).title) // 输出:Dictionary
使用 @ 符号(属性标识符运算符)可以访问 XML 或 XMLList 对象的属性,如下面的代码
所示:
var employee:XML = <employee id="6401" code="233"> <lastName>Wu</lastName> <firstName>Erin</firstName> </employee>; trace(employee.@id); // 6401
可以一起使用 * 通配符和 @ 符号来访问 XML 或 XMLList 对象的所有属性,如下面的代码
所示:
var employee:XML = <employee id="6401" code="233"> <lastName>Wu</lastName> <firstName>Erin</firstName> </employee>; trace(employee.@*.toXMLString()); // 6401 // 233
可以使用 attribute() 或 attributes() 方法访问 XML 或 XMLList 对象的特定属性或
所有属性,如下面的代码所示:
var employee:XML = <employee id="6401" code="233"> <lastName>Wu</lastName> <firstName>Erin</firstName> </employee>; trace(employee.attribute("id")); // 6401 trace(employee.attribute("*").toXMLString()); // 6401 // 233 trace(employee.attributes().toXMLString()); // 6401 // 233
请注意,还可以使用以下语法访问属性,如下面的示例所示:
employee.attribute("id") employee["@id"] employee.@["id"]其中每一个都等效于 employee.@id。不过,语法 employee.@id 是首选方法。
可以使用括号运算符 — ( 和) — 过滤具有特定元素名称或属性值的元素。请考虑下面的
XML 对象:
var x:XML = <employeeList> <employee id="347"> <lastName>Zmed</lastName> <firstName>Sue</firstName> <position>Data analyst</position> </employee> <employee id="348"> <lastName>McGee</lastName> <firstName>Chuck</firstName> <position>Jr. data analyst</position> </employee> </employeeList>
遍历 XML 结构以下表达式都是有效的:
■ x.employee.(lastName == "McGee") — 这是第二个 employee 节点。 ■ x.employee.(lastName == "McGee").firstName — 这是第二个 employee 节点的 firstName 属性。 ■ x.employee.(lastName == "McGee").@id — 这是第二个 employee 节点的 id 属性的值。 ■ x.employee.(@id == 347) — 第一个 employee 节点。 ■ x.employee.(@id == 347).lastName — 这是第一个 employee 节点的 lastName 属性。 ■ x.employee.(@id > 300) — 这是具有两个 employee 属性的 XMLList。 ■ x.employee.(position.toString().search("analyst") > -1) — 这是具有两个 position 属性的 XMLList。
如果试图按照可能不存在的属性或元素过滤,Adobe Flash Player 将引发异常。例如,以下
代码的最后一行产生一个错误,因为第二个 p 元素中没有 id 属性:
var doc:XML = <body> <p id='123'>Hello, <b>Bob</b>.</p> <p>Hello.</p> </body>; trace(doc.p.(@id == '123'));同样,以下代码的最后一行也会产生一个错误,因为第二个 p 元素没有 b 属性:
var doc:XML =
<body>
<p id='123'>Hello, <b>Bob</b>.</p>
<p>Hello.</p>
</body>;
trace(doc.p.(b == 'Bob'));
为了避免这些错误,可以使用 attribute() 和 elements() 方法来识别具有匹配属性或元素
的属性,如下面的代码所示:
var doc:XML = <body> <p id='123'>Hello, <b>Bob</b>.</p> <p>Hello.</p> </body>; trace(doc.p.(attribute('id') == '123')); trace(doc.p.(elements('b') == 'Bob'));
还可以使用 hasOwnProperty() 方法,如下面的代码所示:
var doc:XML = <body> <p id='123'>Hello, <b>Bob</b>.</p> <p>Hello.</p> </body>; trace(doc.p.(hasOwnProperty('@id') && @id == '123')); trace(doc.p.(hasOwnProperty('b') && b == 'Bob'));
ActionScript 3.0 包含用于循环访问 XMLList 对象的 for..in 语句和 for each..in 语
句。例如,我们来看 XML 对象 myXML 和 XMLList 对象 myXML.item。XMLList 对象
myXML.item 由 XML 对象的两个 item 节点组成。
var myXML:XML = <order> <item id='1' quantity='2'> <menuName>burger</menuName> <price>3.95</price> </item> <item id='2' quantity='2'> <menuName>fries</menuName> <price>1.45</price> </item> </order>;
for..in 语句用于循环访问 XMLList 中的一组属性名称:
var total:Number = 0; for (var pname:String in myXML.item) { total += myXML.item.@quantity[pname] * myXML.item.price[pname]; }for each..in 语句用于循环访问 XMLList 中的属性:
var total2:Number = 0; for each (var prop:XML in myXML.item) { total2 += prop.@quantity * prop.price; }
发表评论
-
Flex States 视图状态
2010-08-30 23:06 2154Flex States可以为组件定义多个视图状态,每一 ... -
flex中使用链接报告优化Module大小的测试
2010-08-18 20:51 1686最近使用PuerMVC和Module机制构建了一个界面和操作类 ... -
flex ToolTip专题
2010-06-03 12:46 46091 创建ToolTips 每一个可视化的Flex组件 ... -
pureMVC使用经验和建议
2010-06-03 11:00 1462下面是有经验的朋友分 ... -
pureMVC框架及其开发
2010-06-03 10:46 1156PureMVC框架的目标很明确 ... -
HTML页面加载和解析流程
2010-04-21 11:38 28391.用户输入网址(假设是个html页面,并且是第一次访问),浏 ... -
CSS参考手册
2010-04-21 11:02 883颜色与背景 •color •background-colo ... -
HTML参考手册( 标签、属性和事件)
2010-04-20 17:17 1518HTML标签 标签 描述 DTD <!--...- ... -
flex itemRenderer使用(五):效率
2010-04-17 17:01 1205如果您要显示大量 itemRe ... -
flex itemRenderer使用(四):状态和过渡
2010-04-17 16:01 1748itemRenderer 最擅长与应用程序的用户通信。有时通信 ... -
flex itemRenderer使用(三):通信
2010-04-17 14:51 1556在本系列的第 2 部分中, 我向您展示了如何使用 MXML 和 ... -
flex itemRenderer使用(二)外部渲染器
2010-04-09 18:18 1593在本系列的第 1 部分中, 我向您展示了如何创建内联 item ... -
flex itemRenderer使用(一)内联渲染器
2010-04-09 17:50 1459Flex 提供许多控制, 它们 ... -
Flex Metadata Tag高级应用
2010-04-01 14:42 2372原文地址:http://livedocs. ... -
Flex Metadata Tag归纳总结
2010-04-01 14:25 1047Flex引入了元数据标签的概念,它告诉编译器如何编译这段 ... -
Flex和JS通信
2010-03-06 18:42 1743flex提供了和JS通信的方法,使用flexSDK中的Exte ... -
最近完成的某系统的报表组件
2010-01-20 21:12 2568最近做完了一个flex+java的项目,其中项目的主要特 ... -
Flex Chart组件的阴影去除
2009-12-21 10:52 2115去除Flex Chart组件的阴影有多种方法,最简单最直接的方 ... -
flex中==和===的区别(和java的==和equals类似但也有不同之处)
2009-12-21 09:44 4731===用于测试两个表达式 ... -
Flex中的Dictionary
2009-12-20 23:04 2447Dictionary 类用于创建属性的动态集合,该集合 ...
相关推荐
下载不扣分,回帖加1分。 此压缩包, 【包括】 1>一套Flex基础教程的PPT。 2>FLEX和JAVA整合的技术文档。 【适用于】 1>FLEX入门 ...│ 在eclipse 的一个项目中同时开发j2ee模块和flex 客户端模块.doc │
flex平台设计说明书,基础技术架构。新增了BaseBusiness 和BaseServlet,其他各层也有较多改动,箭头方向表示在层次之间的返回值类型,比如,Business里的方法返回String或Bool值(由于有平台常数,所有的返回值都是...
如何处理XML服务里所返回的命名空间 19.8节. 将ActionScript 数据对象编码成XML 19.9节. 使用复杂XML数据来填充组件 19.10节. 从Web服务中把XML译码成为强类型对象 第二十章与浏览器通信(628) 20.1节连接到外部URL ...
gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户...
基于Asp.net和Flex的网络硬盘源码 可以实现多用户管理,进行用户注册,创建文件夹和文件上传 smark.data是基于C#开发的轻量级数据访问组件。 提供以下功能封: 1)提供了跨数据库类型操作能力 2)基于程线存储的数据...
用于处理XML的EX方法 XML对象 XMLList对象 初始化XML变量 组合和变换XML对象 遍历XML结构 使用XML命名空间 XML类型转换 读取外部XML文档 在ActionScript中使用XML的示例:从Internet加载RSS数据 第章:使用本机JSON...
全书内容包括ActionScript 3.0 语言介绍、ActionScript3.0基本语法、事件机制、面向对象、数组、正则表达式、XML应用、常用的内置类、基本组件、数据列表组件、 DataGrid组件、文本处理、绘图、几何结构、音频、视频...
Maven权威指南是一本关于Apache Maven的书。 Copyright 1. Creative Commons BY-ND-NC Foreword: Beta 0.16 Preface 1. How to Use this Book 2. Your Feedback 3. Font Conventions 4. Maven Writing ...
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...
13.2处理XML数据 283 13.2.1初始化XML对象 283 13.2.2访问与遍历 285 13.3XML对象 288 13.3.1XML对象的数据处理方式 288 13.3.2处理子节点 289 13.3.3访问XML数据 293 13.3.4处理命名空间 294 13.4网络图片加载器...
WML是以XML为基础的标记语言,用在规范窄频设备,如手机、呼叫器等如何显示内容和使用者接口的语言。因为窄频使得WML受到部分限制,如较小型的显示器、有限的使用者输入设备、窄频网络联机、有限的内存和资源等。 ...
14.1 用Spring Portlet MVC开发一个简单的Portlet 544 14.1.1 问题 544 14.1.2 解决方案 545 14.1.3 工作原理 546 14.2 将Portlet请求映射到处理程序 553 14.2.1 问题 553 14.2.2 解决方案 553 14.2.3...
14.1 用Spring Portlet MVC开发一个简单的Portlet 544 14.1.1 问题 544 14.1.2 解决方案 545 14.1.3 工作原理 546 14.2 将Portlet请求映射到处理程序 553 14.2.1 问题 553 14.2.2 解决方案 553 14.2.3...