一.事件类常量属性:
1.MouseEvent类的部分类属性:
CLICK 表示字符串“click”,代表单击事件
DOUBLE_CLICK 表示字符串“doubleclick”,代表双击事件
MOUSE_DOWN 表示字符串“mousedown”,代表鼠标按下事件
2.下面代码使用了MouseEvent类的属性:
MouseEvent.CLICK;
MouseEvent.DOUBLE_CLICK;
3.常见的组件注册方法:
组件实例名.addEventListener("click",侦听器)
4.使用类属性来代替常量字符串最大的优点是:保证程序的稳定性,易于程序除错。
二.使用静态方法:
1.String类有个类方法叫fromCharCode(),他只属于类,只能通过类来使用,而String类的slice()方法则
属于实例,只能通过实例来使用。
2.键盘中的Enter键常用来输入回车符,也可以起到换行的作用,利用String类的类方法fromCharCode()可
以在字符中加入一个回车。
3.键盘中的每个键都对应一个键控代码,键控代码是一个数字,例如,数字13代表回车符,数字64代表键盘
上的字符@ 。
4.(1)打开FLASH文档,单击图层的第一帧 ,打开动作面板,输入下列代码:
trace("yyy"+String.fromCharCode (64)+"xxx");//在字符间插入@
(2)测试影片,在输出面板中将显示:
yyy@xxx
(3)在动作面板中添加下面代码:
trace("yyy"+String.fromCharCode(13)+"xxx");
(4)测试影片,将输出:
yyy
xxx
三.简单数据类型和复杂数据类型的区别:
1.最大区别:
复杂数据类型,当比较它们是否相等时,比较的是它们引用的对象实体,两个实体相同则为true否则为false
简单数据类型,当比较它们是否相等时,比较的是它们储存的值,值相等则为true,否则为false
2.另一个区别:
简单数据类型的种类是不会变的,而复杂数据类型可以通过自定义类等途径来增加。
3.默认值:
在定义了简单数据类型的变量后,这个变量会被赋一个默认值。例如int类型变量的默认值是0,而Boolean类
型的变量的默认值是false,对于复杂数据类型的变量来说,它的默认值是null 。
三.清除变量:
1. 清除变量的机制:Garbage Collection,简称:GC 用来自动清除内存中不再需要的变量。
2. 清除变量有两种算法:一种称为引用计数算法,另一种称为标记和清除算法。
3. 引用计数算法实例:
(1) var a:Object =new Object();//创建一个对象,并用变量a来引用
此时,变量a引用了对象,引用计数就为1。
var b:Object =a;//变量b也引用对象
这时,变量b也引用了同一个对象,引用计数就为2.即这个对象有两个引用,GC就把这个对象从的引用计
数为2.
当内存中不再存在任何指向这个对象的引用时,即变量a和b都不引用这个对象时,GC会将这个对象从内
存中清除掉:
a=null;//删除引用a,对象的引用计数为1
b=null;//变量引用b,对象的引用计数为0
当引用计数为0时,表示此时的对象并没有变量来引用它。在适当的时候,这个对象将被删除。
(2) 引用计数算法在有些时候并不能正常工作。例如,如果定义两个对象,它们只是引用自身,而没有任何别
的对象引用它们,这样它们的引用计数是大于0的,可是却没有办法访问到他们:
var a:Object =new Object();//变量a引用对象1,对象1的引用计数为1
var b:Object =new Object();//变量b引用对象2,对象2的引用计数为1
a.obj2=b;//动态创建变量obj2引用对象2,对象2的引用计数为2
b.obj1=a;//动态创建变量obj1引用对象1,对象1的引用计数为2
a=null;//清除变量a的引用,对象1的引用计数为1
b=null;//清除变量b的使用,对象2的引用计数为1
这里变量a和变量b的引用已经被删除了,它们是无法被访问到的,也就不能访问动态创建的变量obj1和obj2.
4. delete与动态类
ActionScript3.0中有许多动态类,可以向动态类的实例添加属性。例:MovieClip类、Object类、Array类
都是动态类:
var mc:MovieClip =new MovieClip();//创建实例
mc.speed=5;//添加动态属性speed
trace(mc.speed);//输出动态属性,输出5
delete mc.speed;//删除动态属性
trace (mc.speed);//输出undefined
输出undefined表示删除成功。对于数组,delete只能删除数组的元素,不能删除索引,真正删除数组中的元素
必须使用splice()方法:
var arr:Array =new Array();//创建数组
arr [0]=0;//动态创建数组元素即属性
arr [1]=1;
arr.splice(0,1);//删除索引为0的元素
trace(arr.length);//输出1
在使用delete删除变量时,如果能成功删除变量,操作时会返回true:
var mc:MovieClip =new MovieClip();
mc.speed=5;
trace(delete mc.speed);//输出true