- 浏览: 580308 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
smilezhouwei:
请问CruiseControl在加载jar包时,由于jar包过 ...
修改CruiseControl的端口 -
zengxuefei:
不起作用啊,有bug
Flex+Java多文件上传 -
lzeus:
模仿的tomcat源码吧?
java事件处理机制(自定义事件)【转】 -
yangbobestone:
...
FreeMarker整合Struts2 -
fddjxllren:
那是因为你没配置事务,楼主的那个主要是针对事务的写法
Spring2.5+JUnit4单元测试
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="470" creationComplete="myDataGrid.selectedIndex=0;" > <mx:Script> <![CDATA[ // Model: XML structure describing // some of the books in my collection. [Bindable] private var myBooks:XML = <books> <book ISBN="1590595181"> <title>Foundation ActionScript Animation: Making Things Move</title> <author>Keith Peters</author> <amazonUrl>http://tinyurl.com/npuxt</amazonUrl> </book> <book ISBN="1582346194"> <title>Send in the Idiots: Stories from the Other Side of Autism</title> <author>Kamran Nazeer</author> <amazonUrl>http://tinyurl.com/lo5ts</amazonUrl> </book> </books> ]]> </mx:Script> <!-- Keep track of the currently selected book --> <mx:Number id="selectedBookIndex">{myDataGrid.selectedIndex}</mx:Number> <!-- User interface --> <mx:Panel title="Assigning XML data" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10" > <!-- Master view: Display all books --> <mx:DataGrid id="myDataGrid" dataProvider="{myBooks.book}"> <mx:columns> <mx:DataGridColumn dataField="@ISBN" headerText="ISBN" width="85"/> <mx:DataGridColumn dataField="title" headerText="Title"/> <mx:DataGridColumn dataField="author" headerText="Author"/> <mx:DataGridColumn dataField="amazonUrl" headerText="Web site"> <mx:itemRenderer> <mx:Component> <mx:LinkButton label="Visit" click="navigateToURL(new URLRequest(data.amazonUrl), 'blank');" /> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns> </mx:DataGrid> <!-- Detail view: Display currently selected book for editing --> <mx:Form width="100%" autoLayout="false"> <mx:FormHeading label="Edit book details"/> <mx:FormItem label="ISBN:" width="100%"> <mx:TextInput id="isbnInput" width="100%" text="{myBooks.book[selectedBookIndex].@ISBN}" change="{myBooks.book[selectedBookIndex].@ISBN = isbnInput.text}" /> </mx:FormItem> <mx:FormItem label="Title:" width=" 100%"> <mx:TextInput id="titleInput" width="100%" text="{myBooks.book[selectedBookIndex].title}" change="{myBooks.book[selectedBookIndex].title = titleInput.text}" /> </mx:FormItem> <mx:FormItem label="Author:" width="100%"> <mx:TextInput id="authorInput" width="100%" text="{myBooks.book[selectedBookIndex].author}" change="{myBooks.book[selectedBookIndex].author = authorInput.text}" /> </mx:FormItem> <mx:FormItem label="Amazon Url" width="100%"> <mx:TextInput id="amazonUrlInput" width="100%" text="{myBooks.book[selectedBookIndex].amazonUrl}" change="{myBooks.book[selectedBookIndex].amazonUrl = amazonUrlInput.text}" /> </mx:FormItem> </mx:Form> </mx:Panel> </mx:Application>
Actionscript 3.0组类基于ECMAScript for XML(E4X)说明(ECMA-357 2第二版)。这些类功能强大,使用简单,对处理XMLdata数据非常有用。相比以前的编程技术使用E4X的开发代码使得XML数据更快。
- 介绍XML
- 对XML元素与属性赋值
- 通过传递数据引用创建XML对象
- 装配与改变XML对象
- 查询XML数据
介绍XML
许多服务器端应用程序使用XML数据结构,那么你可以在ActionScript中使用XML类来创建优雅的富互联网应用程序。例如那些链接到Web service的应用。web service是连接应用程序的重要的方法,例如,一个Adobe Flash Player9 应用程序和一个在web服务器上的应用程序通过公共标准,例如Simple Object Access Protocol(SOAP)
在Adobe Flex中,ECMAScript for XML说明书定义了一系列的类和功能来处理XML数据。这些类和函数的集合被称为E4X.两个主要的类是XML和XMLList。
注意:在ActionScript 2.0中有一个XML类。在ActionScript 3.0中,它被重命名为XMLDocument这样就不会与新的,作为E4X一部分的XML类发生冲突了。在ActionScript 3.0中,上一个版本遗留的类——XMLDocument,XMLNode,XMLParser和XMLTag——都被包含在flash.xml包中,主要是为了向下兼容。E4X类是核心类;你需要导入包才能使用他们。本快速说明没有设计对传统的ActionScript 2.0的类逐一细说。想了解他们,查看flash.xml包,在Flex 3 Language Reference中
在下边的例子中,你创建了一个XML文档,命名为myBooks。创建一个XML文档在ActionScript,通过在Actionscript块中书写XML并赋值给一个变量。由于在Flex中,XML是本地数据类型,就像Number或Boolean一样。
myBooks的XML文档包含两个book元素(element)(也被称为node(节点))。第一个book元素拥有4个子元素,名称值title,author,amazonUrl和pageCount。
要通过XML实例访问元素,使用点标示(.)就像存取一个对象的属性一样。那么,举个例子,要获得book节点的引用,你要写成myBooks.book。这就返回了一个XMLList时间,他包含了myBooks的XML中的2个book节点。要存取列表中指定节点,你需要使用数组表示法。例如,要获得第一本数节点的引用,可以写为myBooks.book[0]。如果你使用过ActionScript中的对象和数组,你应该对点操作符和数组语法风格比较熟悉。然而,E4X比这更进一步,可以按指定属性名在XML中搜索节点。
下边的例子中,使用搜索ISBN属性获得第一本书的引用。属性在 E4X中at-sign(@)为前缀描述属性,写为@ISBN。语句myBooks.book.(@ISBN==”159059181”)翻译为“找到一个属性ISBN值等于159059181的book节点”。另一个例子描述更高级的查找技术。
例子
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
width="440" height="400"
initialize="initializeHandler();"
>
<mx:Script>
<![CDATA[
[Bindable] public var a:XMLList;
[Bindable] public var b:XMLList;
[Bindable] public var c:XMLList;
[Bindable] public var d:XMLList;
// Model: XML structure describing
// some of the books in my collection.
[Bindable]
private var myBooks:XML =
<books>
<book ISBN="1590595181">
<title>Foundation ActionScript Animation: Making Things Move</title>
<author>Keith Peters</author>
<amazonUrl>http://tinyurl.com/npuxt</amazonUrl>
<pageCount>470</pageCount>
</book>
<book ISBN="1582346194">
<title>Send in the Idiots: Stories from the Other Side of Autism</title>
<author>Kamran Nazeer</author>
<amazonUrl>http://tinyurl.com/lo5ts</amazonUrl>
<pageCount>500</pageCount>
</book>
</books>
private function initializeHandler():void
{
// An XML list that contains both book nodes.
a = myBooks.book;
// Keith Peters
b = myBooks.book[0].author;
// 470
c = myBooks.book.(@ISBN=="1590595181").pageCount;
// Delete the first book node.
delete myBooks.book[0];
// Send in the Idiots...
d = myBooks.book[0].title;
}
]]>
</mx:Script>
<!-- User interface -->
<mx:Panel
title="XML lookup results"
paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10">
<mx:Text text="{'a: ' + a}" width="300"/>
<mx:Label text="{'b: ' + b}"/>
<mx:Label text="{'c: ' + c}"/>
<mx:Label text="{'d: ' + d}"/>
</mx:Panel>
</mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="470" creationComplete="myDataGrid.selectedIndex=0;" > <mx:Script> <![CDATA[ // Model: XML structure describing // some of the books in my collection. [Bindable] private var myBooks:XML = <books> <book ISBN="1590595181"> <title>Foundation ActionScript Animation: Making Things Move</title> <author>Keith Peters</author> <amazonUrl>http://tinyurl.com/npuxt</amazonUrl> </book> <book ISBN="1582346194"> <title>Send in the Idiots: Stories from the Other Side of Autism</title> <author>Kamran Nazeer</author> <amazonUrl>http://tinyurl.com/lo5ts</amazonUrl> </book> </books> ]]> </mx:Script> <!-- Keep track of the currently selected book --> <mx:Number id="selectedBookIndex">{myDataGrid.selectedIndex}</mx:Number> <!-- User interface --> <mx:Panel title="Assigning XML data" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10" > <!-- Master view: Display all books --> <mx:DataGrid id="myDataGrid" dataProvider="{myBooks.book}"> <mx:columns> <mx:DataGridColumn dataField="@ISBN" headerText="ISBN" width="85"/> <mx:DataGridColumn dataField="title" headerText="Title"/> <mx:DataGridColumn dataField="author" headerText="Author"/> <mx:DataGridColumn dataField="amazonUrl" headerText="Web site"> <mx:itemRenderer> <mx:Component> <mx:LinkButton label="Visit" click="navigateToURL(new URLRequest(data.amazonUrl), 'blank');" /> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns> </mx:DataGrid> <!-- Detail view: Display currently selected book for editing --> <mx:Form width="100%" autoLayout="false"> <mx:FormHeading label="Edit book details"/> <mx:FormItem label="ISBN:" width="100%"> <mx:TextInput id="isbnInput" width="100%" text="{myBooks.book[selectedBookIndex].@ISBN}" change="{myBooks.book[selectedBookIndex].@ISBN = isbnInput.text}" /> </mx:FormItem> <mx:FormItem label="Title:" width=" 100%"> <mx:TextInput id="titleInput" width="100%" text="{myBooks.book[selectedBookIndex].title}" change="{myBooks.book[selectedBookIndex].title = titleInput.text}" /> </mx:FormItem> <mx:FormItem label="Author:" width="100%"> <mx:TextInput id="authorInput" width="100%" text="{myBooks.book[selectedBookIndex].author}" change="{myBooks.book[selectedBookIndex].author = authorInput.text}" /> </mx:FormItem> <mx:FormItem label="Amazon Url" width="100%"> <mx:TextInput id="amazonUrlInput" width="100%" text="{myBooks.book[selectedBookIndex].amazonUrl}" change="{myBooks.book[selectedBookIndex].amazonUrl = amazonUrlInput.text}" /> </mx:FormItem> </mx:Form> </mx:Panel> </mx:Application>
通过传递数据引用创建XML对象
前边介绍XML的例子展示了使用XML文档初始化XML对象的方法。当创建一个XML文档时,你也可以通过引用(来自其他变量的引用)传递数到XML对象中,通过大括号扩起来的变量值引用。
如果你创建的XML结构不是有效的XML,你会看到类型错误的运行时错误。
下边的例子动态的创建了一个XML对象。它基于用户提供的变量来创建属性名,属性值,标签名和标签内容。例子检查了TypeError的情况,通过使用try…catch块环绕XML初始化代码。
例子
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="400" initialize="createXML();" > <mx:Script> <![CDATA[ [Bindable] public var xml:XML private function createXML():void { try { // Create the XML object using the values provided // by the user for the tag name, attribute name, // attribute value and the tag's contents. xml = <{tagName.text} {attributeName.text}={attributeValue.text} > {content.text} </{tagName.text}>; } catch (e:TypeError) { // Type error encountered while trying to create the // XML object. The form must not be valid. Inform // the user. xml = <note>Fill the form to see the tag here.</note>; } } ]]> </mx:Script> <!-- User interface --> <mx:Panel title="Passing XML data by reference" layout="horizontal" > <mx:Form> <mx:FormItem label="Tag name:"> <mx:TextInput id="tagName" change="createXML();"/> </mx:FormItem> <mx:FormItem label="Attribute name:"> <mx:TextInput id="attributeName" change="createXML();"/> </mx:FormItem> <mx:FormItem label="Attribute value:"> <mx:TextInput id="attributeValue" change="createXML();"/> </mx:FormItem> <mx:FormItem label="Tag content:"> <mx:TextInput id="content" change="createXML();"/> </mx:FormItem> <mx:HRule width="100%"/> <!-- Display the resulting XML --> <mx:TextArea editable="false" width="300" height="50" text="{xml.toXMLString()}" /> </mx:Form> </mx:Panel> </mx:Application>
对XML元素与属性赋值
使用@和点( . )操作符不只可以从XML结构中读取数据的值,也可以为其赋值。
在下边的例子中,创建一个XML结构master-detail视图。master视图包含一个DataGrid 组件,用来显示书的列表。detail视图包含控件,用来编辑master视图中当前选中的图书。
master 和detail视图使用数据绑定和E4X来读取和更新XML中的数据。
下边的例子通过一下方法使用E4X:
- myBooks.book引用book元素的XMLList对象。
- myBook.book[selectedBookIndex]引用当前被选中的book元素。
- myBook.book[selectedBookIndex].title引用当前被选中book元素的子元素title
要使用当前被选中图书的title更新TestInput控件tiltleInput,需要绑定TestInput控件tiltleInput的text属性到myBooks.book[selectedBookIndex].title。类似地,要使用用户最终输入更新XML,当TestInput控件tiltleInput的text属性改变时,将TestInput控件tiltleInput的text属性的值赋值给myBooks.book[selectedBookIndex].title。
detail视图中的另一个组件使用同样的方法正确的工作。
例子
发表评论
-
Flex客户端ant同步配置
2010-09-01 12:00 1924先转网上一篇Flex支持ant的文章:Until Flex B ... -
Flex Builder中自动补全和导入的问题
2010-06-11 10:28 2358Flex Builder中自动补全和导入的问题 Wor ... -
理解 Flex itemRenderer - 第 1 部分: 内联渲染器
2010-03-31 18:04 2470理解 Flex itemRenderer - 第 1 部分: ... -
理解 Flex itemEditor-第 2 部分:编辑事件和复杂编辑器
2010-03-31 17:57 3262理解 Flex itemEditor-第 2 ... -
理解 Flex itemEditor-第 1 部分:内联 itemEditor
2010-03-31 17:43 4173理解 Flex itemEditor-第 1 ... -
Flex中日期格式化
2010-03-31 17:37 1095Flex中日期格式化 var dateFormatter:D ... -
Flash Builder 4 Beta和FlexUnit下的测试驱动开发---断言方法
2010-03-31 10:19 1349Flash Builder 4 Beta和FlexUnit下的 ... -
Flex中12个常用函数
2009-11-10 14:32 1116No.1 Copy content to clipboard: ... -
Flex图片列表
2009-10-14 12:11 4091图片列表 <?xml version=" ... -
Flex+Java多文件上传
2009-10-12 17:44 4782结合网上的资料修改一下,实现了两种不同界面的多文件上传 ... -
Flex 构建自定义组件 在 MXML 中构建组件
2009-09-30 16:31 2739在一个典型的应用程序中,并不会把所有代码都编写到一个文件中。这 ... -
Flex 调入 module 时传入参数
2009-09-30 11:25 2143主模块代码 <?xml version=" ... -
Flex + LCDS + Java 入门教程
2009-08-27 17:53 1079Flex + LCDS + Java 入门教程 见附件 -
flash中传参数
2009-02-18 15:25 1154<object width="100%&qu ... -
修改Flex中验证错误字体的大小
2008-11-13 10:05 1636修改Flex中验证错误字体的大小 <mx:Style ... -
Flex3 + Spring配置
2008-10-26 19:04 1513Flex3 + Spring配置 具体过程参见: ...
相关推荐
箭头方向表示在层次之间的返回值类型,比如,Business里的方法返回String或Bool值(由于有平台常数,所有的返回值都是String),因为这层是业务层,它只需要告诉Servlet操作成功没有,或者是返回XML数据值。...
2)基于程线存储的数据访问上下文对象,轻易提供跨方法域的数据事务处理机制。 3)对象查询表达式 4)实体操作基础封装等快速开发功能 开发人员可以在以上基于功能扩展出更灵活高效的数据操作。 组件还提供一个基于...
5.2.2 Flex访问WebService 32 6 BlazeDS与服务端通信 33 6.1什么是BlazeDS 33 6.2配置BlazeDS,并使之正常运作 34 6.3创建一个Java项目,用来充当Server 34 6.4配置BlazeDS 35 6.5 新建一个Flex应用程序,测试连接 35 ...
Flex企业应用开发实战源代码 本书由业界4位拥有近10年企业级应用开发经验的资深专家撰写,权威性...10.3.2 Flex通过Fluorine访问.NET 311 10.4 小结 314 附录 Flex Builder 3中的项目如何迁移至Flash Builder 4 315
使用复杂XML数据来填充组件 19.10节. 从Web服务中把XML译码成为强类型对象 第二十章与浏览器通信(628) 20.1节连接到外部URL 20.2节使用FlashVars 20.3节在Flex里面调用JavaScript函数方法 20.4节在JavaScript中调用...
绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现...
作为数据访问加载的媒体 加载数据 从导入到安全域的SWF文件加载嵌入内容 使用旧内容 设置LocalConnection权限 控制外出URL访问 共享对象 摄像头、麦克风、剪贴板、鼠标和键盘访问 AIR安全性 第章:如何使用...
Favzone旅游查询系统是一款查询旅游景点的基于Flex3的开源系统,目前为1.0版本,还有不少问题等待解决,如:中文字体,美观等等! 使用技术: Flex3 Cairngorm框架 Flex IOC框架Spring ActionScript CoverFlow ...
但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 http://www-c8d8bc651c4/ArcGIS/rest/services/zhengzhou/MapServer?f=json 加载数据 ...
13.3.3访问XML数据 293 13.3.4处理命名空间 294 13.4网络图片加载器示例 295 13.5小结 298 第14章正则表达式与字符串匹配 299 14.1正则表达式概述 299 14.2正则表达式语法 300 14.2.1创建对象 300 14.2.2字符、元...
可以自动将json或xml数据格式化,方便查看。 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。 支持重发网络请求,方便后端调试。 支持修改网络请求参数。 支持网络请求的截获并动态修改...
asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) asp.net 2.0 新特性 Visual Web ...
加载、发送和检索 XML 数据等。 全书涵盖客户端ActionScript的整个范畴,将概念应用于实际情况,采用特定的格式协助读者迅速解决特定的问题。读者无须逐页阅读就可以了解底层代码,解决问题,完成任务。本书适合广大...
然后,您的网络浏览器(或任何其他互联网应用程序)被配置为通过 Charles 访问互联网,然后 Charles 能够为您记录和显示所有发送和接收的数据。 在 Web 和 Internet 开发中,您无法看到 Web 浏览器/客户端和服务器...
我已经使用rvest和xml2 R软件包从国家司法数据网格中抓取了数据,该数据在html表中存储在多个网页上。 我用tidyverse , flexdashboard , shiny , plotly , sf , ggrepel和scales R封装及其依赖的仪表板本身。...
然后,您的网络浏览器(或任何其他互联网应用程序)被配置为通过 Charles 访问互联网,然后 Charles 能够为您记录和显示所有发送和接收的数据。 在 Web 和 Internet 开发中,您无法看到 Web 浏览器/客户端和服务器...
然后,您的网络浏览器(或任何其他互联网应用程序)被配置为通过 Charles 访问互联网,然后 Charles 能够为您记录和显示所有发送和接收的数据。 在 Web 和 Internet 开发中,您无法看到 Web 浏览器/客户端和服务器...
然后,您的网络浏览器(或任何其他互联网应用程序)被配置为通过 Charles 访问互联网,然后 Charles 能够为您记录和显示所有发送和接收的数据。 在 Web 和 Internet 开发中,您无法看到 Web 浏览器/客户端和服务器...
然后,您的网络浏览器(或任何其他互联网应用程序)被配置为通过 Charles 访问互联网,然后 Charles 能够为您记录和显示所有发送和接收的数据。 在 Web 和 Internet 开发中,您无法看到 Web 浏览器/客户端和服务器...