转自http://www.flashshe.com/blog/post/21.html
如果要在Flash中使用外部XML文档,只需通过XML类的XML.load()方法载入外部XML文档即可。但是在Flex中却不能这样,那怎么办呢?下面就为大家介绍三种方法。
假设外部XML文档内容如下(文件名称为 test.xml):
<?xml version="1.0" encoding="utf-8"?>
<root>
<news>
<title>one</title>
<data>1</data>
</news>
<news>
<title>two</title>
<data>2</data>
</news>
</root>
并且test.xml文件和我们将要建立的MXML文件在同一目录下。
一、使用 标签
使用文本编辑器或者flex builder建立如下的MXML文档:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initApp()">
<mx:Script>
<![CDATA[
function initApp(){
myText.text = "有" + myXML.childNodes.length + "条信息。";
myText.text += "第一条信息标题为:" + myXML.firstChild.firstChild.firstChild.nodeValue;
}
]]>
</mx:Script>
<mx:XML id="myXML" source="test.xml" />
<mx:Text id="myText" />
</mx:Application>
如果你在Flash中使用过XML,我相信上面的代码对于你来说一目了然,没有任何解释的必要。
运行此MXML文档,可以看到Text组件的内容为:有2条信息。第一条信息标题为:one。
二、使用 标签
将上面的MXML文档稍作修改:
1、把“”换成“”;
2、把initApp()函数修改为
function initApp(){
var temp:Object = myModel.news;
myText.text = "有" + temp.length + "条信息。";
myText.text += "第一条信息标题为:" + temp[0].title;
}
运行此MXML文档,可以看到Text组件的内容为:有2条信息。第一条信息标题为:one。
当使用标签时,Flex将外部XML文档转换成对象,而不再把它看成是一个XML文件。
将test.xml转换成对象后,此对象相当于:
root = [{title:"one",data:"1"},{title:"one",data:"1"}];
三、使用 标签
这种方法我并不推荐使用,因为当第一次运行MXML文档后,外部XML文件会放入到客户机的缓存中,
当你的服务器上的XML文件更新后在客户端却不能马上进行相应的更新,因为你客户端的网页从缓存中读入了旧的XML文件。
在此我只提供MXML文件,不会做解释,感兴趣的读者可自行研究。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initApp()">
<mx:Script>
<![CDATA[
function initApp(){
hs_ima.send();
}
function onLoad(Void):Void{
var myXML:Object = hs_ima.result;
//然后你可以把myXML当作一个XML对象来使用,像介绍的第一种方法一样
myText.text = "有" + myXML.childNodes.length + "条信息。";
myText.text += "第一条信息标题为:" + myXML.firstChild.firstChild.firstChild.nodeValue;
}
]]>
</mx:Script>
<mx:HTTPService id="hs_ima" url="test.xml" useProxy="false" result="onLoad()" resultFormat="xml" showBusyCursor="true" />
<mx:Text id="myText" />
</mx:Application>
分享到:
相关推荐
综上所述,这段代码展示了如何在Flex应用中使用ActionScript 3从外部XML文件加载数据,解析数据并创建图形界面元素。通过HTTP服务获取XML数据,然后利用`XMLArrayCollection`进行解析,最后将解析出的数据映射到UI...
在Flex开发环境中,`flex-config.xml`文件是一个至关重要的配置文件,它允许开发者自定义Adobe Flex编译器的行为。这个文件通常位于项目的根目录下,或者在全局的Flex SDK安装路径中,对于命令行编译尤其重要。通过...
当XML数据存储在外部文件中时,我们可以使用URLLoader类来加载数据,并结合Event.COMPLETE事件监听器解析加载完成的XML: ```actionscript var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = ...
总之,`crossdomain.xml`文件是Flex跨域访问的关键,正确配置它能确保WebLogic上的Flex应用与外部资源安全、顺畅地通信。理解其工作原理并根据实际需求调整策略,是保障应用功能和数据安全的重要环节。
1. **XML数据源**:在示例中,数据存储在一个名为`user.xml`的外部XML文件中。XML是一种轻量级的、自描述的数据交换格式,常用于在应用程序之间传递结构化数据。 ```xml <ID>213001 张三 <age>25 <!-- 更...
然而,如果需要在Flex应用中实现安全的远程命令执行或文件传输,可能需要借助后台服务(如Java或Node.js)来处理SSH连接。Flex通过HTTP或AMF(Action Message Format)与后端服务通信,获取或发送数据,包括通过SSH...
这段代码通过HTTPService组件从外部XML文件加载数据,并将其解析为树形数据结构,然后在界面上展示出来。 知识点: 1. **Flex框架**: Flex是一种用于构建富互联网应用程序(RIA)的开源框架,特别适用于创建复杂的...
此外,还可以使用`appendChild()`方法向XML文档中添加新的元素: ```actionscript var newItem:XML = <menuName>mediumcola <price>1.25 ; myXML.appendChild(newItem); ``` 最后,可以使用属性符号`@.`来修改...
Flex应用程序可以读取XML配置文件(如services-config.xml或flex-config.xml)中的参数,这些参数在编译时或运行时可以被设置。 了解了这些方法后,我们还需要关注如何在Flex 3应用中处理这些参数。通常,我们会...
在Flex编程中,动态加载外部图片是一项常见的需求,特别是在创建数据驱动的应用程序或者需要根据用户交互更新界面的情况下。本文将深入探讨如何在Flex项目中实现这一功能,包括基本原理、步骤以及常见问题的解决策略...
在本文档中,我们将深入探讨如何在Flex中操作XML文件,包括XML的基本概念以及在Flex环境中创建、处理和使用XML对象的方法。 XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它由元素...
2. **在Flex中使用Adobe Kuler**:另一个案例则是关于如何在Flex应用程序中利用Adobe Kuler服务。这个案例不仅教授了如何处理SOAP Web服务响应,还展示了如何根据用户的选择动态更新UI的颜色方案。 #### 五、从...
2. **使用变量替换**:如果要在XML字符串中使用变量,可以使用花括号 `{}` 来包裹变量名。 ```actionscript var text_node:String = "text"; var textXmlObj:XML = <test><element>{text_node}</element></test>;...
Flex中的E4X,全称为ECMAScript for XML,是一种在ActionScript 3.0中处理XML的强大方式。E4X使得在ActionScript中解析、操作和生成XML变得极其简单,它引入了一系列新的操作符和类,使得XML与JavaScript对象之间的...
要应用外部样式表,只需在`<mx:Style>`标签中使用`source`属性指定样式表文件的路径: ```xml ``` `style.css`文件中的样式表定义与本地样式定义相似,但通常更便于维护和共享。 #### 三、使用内联样式 内联...
在 Flex 4 中,我们可以从不同来源接收外部参数,如启动参数、URL 参数或通过 XML 配置文件。这些参数可以用来初始化应用状态、设置默认值或根据用户需求动态调整界面。 1. **启动参数**:当应用程序被启动时,可以...
确保这些字体文件是合法并可以在商业项目中使用的。 2. **转换字体**: 由于Flex使用的是SWF格式,因此需要将.ttf或.otf字体转换为SWF字体库。可以使用Adobe的Font Embedder工具(现在已经不再支持,但可以找到第三...