一:变量的本质
在as3里,所有的数据都是对象,我们通过变量来操作对象。变量持有“引用”,而引用则指向操作的对象类似于C里面的指针!
二:值类型和引用类型的区别
基本类型(Boolean,int,Number,String,uint)都是值类型,其余全是引用类型。必须使用new创建的类型一定不是值引用!
值类型的特点:直接存值。每个变量的值不因为其他变量值的改变而改变。
引用类型改变的只是引用类型的改变(类似于C里指针指向另外一个变量地址)。
值类型变量储存的依然是引用只不过对象叫做不变对象。
不变对象就是一旦被建立就不能改变的对象,比如
var aname :int = 1;
aname = aname + 2;
首先创建不变对象1,aname指向不变对象1;然后“aname + 2”使引用指向另外新被创建的不变对象3,然后aname指向不变对象3,此后不变对象1被AVM(ActionScript虚拟机)回收。值引用持有引用,而不是直接持有值导致对象可以被重复利用。引用的内存消耗一般比值小,所以对内存使用率大大提高。
三:基础数据类型
1)能使用整数值是优先使用int和uint。整数有正负之分时用int,只处理正整数优先使用uint。处理颜色有关数据用uint。碰到或可能碰到小数点时用Number。
2)小数相加不一定得到整数,比如10个0.1相加永远得不到1;
实在需要浮点数相加得到整数记得用Math.round();来修正。
3)不要让数值相差过大的浮点数相加减,结果可能有偏差。
比如:10w个0.000 000 001和1w相加结果还是1w。