Flex 4 SDK 新特性教程系列 – 新增MXML标签
本章是Flex 4 SDK 新特性教程系列的第4章。本章介绍了MXML 2009新增的标签,包括:
Declarations
Vector
Library
Definition
Private
Reparent
<Declarations />
Declarations标签是Flex 4中最常用的新增标签。
在Flex 3中,对于一个MXML组件的直接子元素,可以有以下几种情况:
1. 属性标签,例如:
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:text>
<mx:String>test</mx:String>
</mx:text>
</mx:Label>
2. 作为默认属性的值,例如:
List的默认属性为DataProvider
<mx:List xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:ArrayCollection>
....
</mx:ArrayCollection>
</mx:List>
3. 作为容器的Children:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Button />
<mx:Label />
</mx:Canvas>
4. 声明并创建非可视化对象:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:HTTPService id="sevice" />
</mx:Canvas>
在Flex 4中,对于MXML组件的直接子元素有着更加规范的定义,即:所有直接子元素或者是组件的属性标签,或者是作为组件默认属性的值而存在。而容器的默认属性即为其Children的集合(例如Group的默认属性为mxmlContent,DataGroup的默认属性为dataProvider)。
而对于最后一种情况,在Flex 4中,在MXML中创建非可视化对象,如HTTPService, Effect, 基本数据类型等等,必需通过<Declarations/>标签来完成。例如声明一个HTTPService对象:
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library:ns.adobe.com/flex/spark" >
<fx:Declarations>
<s:HTTPService id="service" />
</fx:Declarations>
</s:Group>
上面的代码等价于ActionScript:
public MyGroup extends Group {
private var service:HTTPService = new HTTPService();
}
值得注意的是,Declarations标签也可以用来声明、创建任何可视化组件,但是使用该标签创建的组件不会被加入到DisplayList中,也不会被初始化。你可以在需要的时候再使用它。
<Vector />
Vector是Flash Player 10中新增加的数据类型(结构),大多数情况下
相关文档:
使用flex tree 和list实现如下选择用户的效果
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
showCloseButton="true" creationComplete ......
用过FLEX中String类型的朋友可能知道,replace这个方法并不过替换所有内容。那么我们需要替换所有内容怎么办?只有自己动手,丰衣足食咯,呵呵。言归正专,有两种方法,一种是利用Array的方式,另一种是利用正则去替换。
/**
* StringReplaceAll
* @param source:String 源数据
* @param find:String 替换对象 ......
经常会设计一个这样的功能,比如更改个性头像,这个个性头像最终需要上传到服务器的文件系统中,但是程序希望在用户选择后直接有个预览,然后用户才进行上传。这个功能技术上其实就是需要对本地的文件能进行读取。在flash player10中有个类FileReference的类可以实现这个功能,而实现对文件读取的接口是load( )函数,要注意 ......
1、使用navigateToURL,主要方式如下:var url:String = "http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html";
&n ......
最近遇到了flex 的安全沙箱问题,找了很多资料发现不是都是和我,我的程序需要socket连接,而大多数讲的都是跨域文件读取的。我先把两种方法都总结出来:
跨域文件读取
方法一:在目标服务器上布署crossdomain.xml文件(我用的此方法很管用,放上就没问题了) 需要远程服务根目录定义有crossdomain.xml文件,如下:
<?x ......