在as3.0中我们用的最多的可能就是“事件” ,我们会侦听各种事件。
当我们点击一个按钮时,在2.0中我们可能会用到这样的语句:
当然后我们也可以用addEventListener来侦听一个点击事件。在3.0中我们一律用addEventListener这种加侦听的方式来完成。
function btnClickHandler(event:MouseEvent):void{
//点击后代码
}
这是一个单击事件,基本上我们用到的系统里的所有类都会有事件,在帮助文档中我们可以找到,我们可以很方便的使用这些事件。
我们现在把上一节中我们用到的代码稍加一下变动:
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.utils.getDefinitionByName;
import flash.events.MouseEvent;
public class MainForm extends Sprite{
public function MainForm(){
for(var i=1;i<=2;i++){
var ClassReference:Class = getDefinitionByName("Mc"+i) as Class;
var instance:MovieClip = new ClassReference();
instance.name = "mc" +i;
instance.addEventListener(MouseEvent.CLICK,insClickHandler);
addChild(instance);
}
}
private function insClickHandler(event:MouseEvent):void{
trace("你点击了:",event.currentTarget.name);
}
}
}
event.currentTarget是指当前侦听的对像,加个name属性就是这个对像的名字,这里MouseEvent就是鼠标事件;Sprite、MovieClip、SimpleButton、Button这一些都可以加鼠标事件侦,当然不止这一些(注:SimpleButton是元件按钮,Button是组件按钮)
MouseEvent.CLICK这个实际上是一个常量,代表着"click"这个字符串,从字面上我们就可以看出这个是单击的意思,通常这些事件其实都可以字面上看到意思,像MouseEvent.MOUSE_DOWN就是鼠标按下事件,值得一提的是3.0里面加上了双击事件,是MouseEvent.DOUBLE_CLICK,不过使用双击还要使doubleClickEnabled 为true才行。
我们不可能从别人那里知道一个类有多少种事件,所以帮助是最好的老师,我们学习AS3最好的教程其实就是帮助,所以要勤看帮助,这样才能进步更快。
下节继续讲解事件侦听。
(本教程如需转载请注明出处!)