AS1.0的OOP 与 AS2.0的OOP对比简单比较
以前用AS1.0做OOP架构时,使用的是Function构造函数和定义子(私有)函数通过prototype比如建立圆Circle的累如下。
FLA的第一帧,以下内容为程序代码:
#include "Circle.as"
myCricle=new Circle(3,4,6)
sss=myCricle.getArea()
trace(sss)
用AS1.0 建立的 Circle.as
//定义圆的类,x,y为坐标,r为半径
function Circle(x,y,r)
{ this.x=x
this.y=y
this.r=r
}
Circle.prototype.getArea=function()
{
return Math.PI*this.r*this.r
}
再来看看AS2.0写的Circle.as
class Circle
{
//定义私有变量
private var _circleX:Number;
private var _circleY:Number;
private var _circleR:Number;
////////////////////
//构造函数
function Circle(x:Number,y:Number,r:Number)
{
_circleX=x;
_circleY=y;
_circleR=r
}
///////////////////////
//公有方法
function getArea():Number
{
return Math.PI*_circleR*_circleR;
}
}
很明显,AS2.0在变量和传递值类型要求语法是很严格的,并且在定义私有,公有函数,变量里也是要求严格的.
而AS1.0用Function构造的OOP并不是完善的OOP.如果用过C#,JAVA就明白变量和函数的严格定义是很重要的.特别是返回和传递类型,子函数,超类.而AS1.0要实现这种架构组成AS类的话.得要有点头昏.比如对返回类形是OBJECT,还是ARRAY,或MC,而AS2.0在定义时就严格要求.这对写程序有很大帮助..
FLASH2004如果用Function.prototype构造OOP结构,发布时FLASH时要发布成flash6.0 AS1.0的格式,AS2.0不采用Function函数构造器形式.这个可以看flash2k4的帮助文件里找Function class,可以了解更多.
当然AS1.0存在了很长时间,也可以实现OOP结构很好.重要的理解和熟练运用其实一种,理解OOP,FLASHMX和FLASH2K4都是不错的软件.这里只是把两种的主要区别写了出来.
以前用AS1.0做OOP架构时,使用的是Function构造函数和定义子(私有)函数通过prototype比如建立圆Circle的累如下。
FLA的第一帧,以下内容为程序代码:
#include "Circle.as"
myCricle=new Circle(3,4,6)
sss=myCricle.getArea()
trace(sss)
用AS1.0 建立的 Circle.as
//定义圆的类,x,y为坐标,r为半径
function Circle(x,y,r)
{ this.x=x
this.y=y
this.r=r
}
Circle.prototype.getArea=function()
{
return Math.PI*this.r*this.r
}
再来看看AS2.0写的Circle.as
class Circle
{
//定义私有变量
private var _circleX:Number;
private var _circleY:Number;
private var _circleR:Number;
////////////////////
//构造函数
function Circle(x:Number,y:Number,r:Number)
{
_circleX=x;
_circleY=y;
_circleR=r
}
///////////////////////
//公有方法
function getArea():Number
{
return Math.PI*_circleR*_circleR;
}
}
很明显,AS2.0在变量和传递值类型要求语法是很严格的,并且在定义私有,公有函数,变量里也是要求严格的.
而AS1.0用Function构造的OOP并不是完善的OOP.如果用过C#,JAVA就明白变量和函数的严格定义是很重要的.特别是返回和传递类型,子函数,超类.而AS1.0要实现这种架构组成AS类的话.得要有点头昏.比如对返回类形是OBJECT,还是ARRAY,或MC,而AS2.0在定义时就严格要求.这对写程序有很大帮助..
FLASH2004如果用Function.prototype构造OOP结构,发布时FLASH时要发布成flash6.0 AS1.0的格式,AS2.0不采用Function函数构造器形式.这个可以看flash2k4的帮助文件里找Function class,可以了解更多.
当然AS1.0存在了很长时间,也可以实现OOP结构很好.重要的理解和熟练运用其实一种,理解OOP,FLASHMX和FLASH2K4都是不错的软件.这里只是把两种的主要区别写了出来.
回复Comments
作者:
{commentrecontent}