初学flex时 总结记录下来要学习的基础知识:
使用BlazeDS+JAVA的模式来开发的时候,数据类型对应的关系如下:
从Action Script到Java
AS | JAVA |
Array (dense) | java.util.List |
Array (sparse) | java.util.Map |
flash.utils.ByteArray | byte [] |
flash.utils.IExternalizable | java.io.Externalizable |
Date | java.util.Date |
int/uint | java.lang.Integer |
null | null |
Number | java.lang.Double |
String | java.lang.String |
XML | org.w3c.dom.Document |
XMLDocument | org.w3c.dom.Document |
从Java到ActionScript
Java | AS |
java.lang.String | String |
java.lang.Boolean, boolean | Boolean |
java.lang.Integer | int |
java.lang.Short | int |
java.lang.Byte | int |
java.lang.Byte[] | flash.utils.ByteArray |
java.lang.Double | Number |
java.lang.Long | Number |
java.lang.Float | Number |
java.lang.Character | String |
java.lang.Character[] | String |
java.util.Calendar | Date |
java.util.Date | Date |
java.util.Collection | mx.collection.ArrayCollection |
java.lang.Object[] | Array |
java.util.Map | Array (sparse) |
java.util.Dictionary | Object (untyped) |
org.w3c.dom.Document | XML object |
FLEX数据类型说明
类型名
类型描述
Boolean
只有两个值:true 和false
Int
整数类型,取值范围:-2147483648~2147483647
Null
只有一个值null,代表空值
Number
整数类型和浮点类型,使用64位双精度
String
字符串类型,以Unicode编码格式存放
Uint
正整数类型,取值范围:0-4294967295
Void
值为undefined,只可用作函数的返回类型。
可以拖曳的组件:DataGrid Menu TileList Tree
属性名称
属性描述
AllowDragSelection
默认false,是否可以拖曳
AllowMultipleSelection
默认false,是否可以多选
dragEnable
默认false,是否可以拖动子元素
dragMoveEnable
默认是false,是否可以移动元素位置,而不是复制元素
dropEnable
默认false,是否可以将物件放置进来
flex数字计算-符号
符号说明
+
加法运算
-
减法运算
*
乘法运算
/
除法运算
%
取余运算,A%B,得到A÷B的余数
++
累加运算,a++, 结果相当于a=a+1
--
累减运算,a-- , 结果相当于a=a-1
+=
连加运算,a+=b,结果相当于 a=b+a
-=
连加运算,a-=b,结果相当于 a=b-a
*=
连乘运算
/=
连除运算
%=
连余运算
在使用LCDS调用的Java代码的过程中数据类型的转换是直接发生了,不需要显性的调用。
补:JAVA里的LIST、ARRAYLIST对应到FLEX里可以用ArrayCollection来接收。
eg:通过JAVA写一个连接ORACLE的方法,返回一个ARRAYLIST,该ARRAYLIST里放的一般是一个个的HASHMAP。如果通过RemoteObject(或其他方式)来调用该方法时,FLEX端接收到的肯定是个OBJECT,这个时候可以强制转换成ArrayCollection。然后通过遍历该ArrayCollection,来取得存每条数据的OBJECT(JAVA里的HASHMAP)。
FLEX里没有MAP类,但只要你知道了JAVA里MAP的KEY,那么FLEX里就可以作为OBJECT的一个属性来访问
flex 强制类型转换
一般情况 是用 as 即可实现类型的转换
String 和 Number 之间的互换不行
String 转为Number
eg:var s:String="0";
var i:int=Number(s);
Number 转为String
eg: var n:int = 67;
var ss:String=String(n);
注: java 中 int转为 String 可以是 “”+int值, 这里是不行的,目前我知道的是只有上面这一种方式转为 String