关注Flex的朋友,都知道Flex2.0使用的时AS3,而Flex1.5使用的是As2,AS3是完全面向对象的,其与AS2有很多不兼容的地方,这对于我们将Flex1.5移植到Flex2.0带来了很多的工作量,但是如果我们使用Flex1.5中开发中,改变一些特定的编码习惯以使其与AS3兼容,那么对于以后我们的移植工作将是莫大的帮助。 以下建议将指导您使用AS3的方式编码并且将减少您以后移植的修改工作量。 任何时候都声明变量的类型(Data Type Everything) 确保任何变量都有类型声明,例如: var n = 4; 修改为: var n:Number = 4; 如果您不确定使用什么类型变量,那么请使用Object类。 这种编码的习惯的负面影响是并不是任何变量都可以如此简单容易的编码,例如,我们看下Event类,如果我们声明一个变量为Event类型,那么我们就不能给这个变量增加我们自定义的属性了。Flex 2为给我们提供更多的预定义类以解决这样的问题。 如果以上编码运行时有问题,那么移除变量类型声明并再以后移植到Flex2的时候修复它。 事件(Events) 在Flex1.5种,您可以很方便的直接内嵌编码对象来触发事件: dispatchEvent( {type:"select", code:"Something" } ); 这样的方式在Flex 2中是不运行的,取而代之的,我们应该这样编写代码:
var event:Object = new Object(); event.type = "select"; event.code = "Something; dispatchEvent(event);
声明变量和函数的范围(Public & Private) 在Flex 2您必须标明变量和函数的范围,当前您可以偷懒这样编码:
var dp; function initApp() { dp = new Array(); }
但是在Flex2中,以上必须修改为:
private var dp; private function initApp() : Void { dp = new Array(); }
数据绑定(Bindings) 在Flex 1.5 您绑定变量不需要任何特定的语法,例如:
var dp:Array = ‘{name:"George",age:18},{name:"Holly",age:23},..‘; <mx:DataGrid dataProvider="{dp}" />
在Flex2中,您需要使用[Binding]指令将这些将要被用于数据绑定的变量标识为Binding。 所以现在您就可以使用[Binding]以与以后的Flex2.0一致:
[Binding] var dp:Array = ... ;
[Binding]指令在Flex 1.5中没有特定作用是无害的。 结论 以上的编码习惯,如果您现在就把它们应用于您的编码中,那么将极大的减少您移植代码到Flex2的工作量。 |
|