【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 雪原xy 于 2019-1-15 16:41 编辑
[Actionscript3] 纯文本查看 复制代码 //文档类:
/*说明:1、在文档类中导入了三个类:“上课事件类”、“教师类”、“学生类”;
2、教师实例添加了两个侦听器,一个是上课事件,一个上下课事件;侦听器都是学生的study()方法;
3、最后的te.Cla()方法,由于移除了侦听器,所以只有教师的动作,而学生没有反应;*/
package {
import flash.display.Sprite;
import son2.ClaEvent;
import son2.Students;
import son2.Techer;
public class doc2 extends Sprite {
var te:Techer=new Techer("赵老师","数学")
var stu:Students=new Students();
public function doc2() {
//为教师添加两个侦听器;
te.addEventListener(ClaEvent.START_CLASS,stu.study);
te.addEventListener(ClaEvent.OVER_CLASS,stu.study);
//使用ClaEvent的静态常量赋值;
te.Cla(ClaEvent.START_CLASS);
//移除对上课的侦听;
te.removeEventListener(ClaEvent.START_CLASS,stu.study);
//使用ClaEvent的静态常量值赋值;
te.Cla("下课");
//移除下课的侦听;
te.removeEventListener(ClaEvent.OVER_CLASS,stu.study);
//再次使用te.Cla()方法,编译器没有反应,因为侦听器移除了;
trace("完")
te.Cla("上课");
}
}
}
//自定义的一个事件类,有两个不同的常量作为不同的事件类型;
package son2 {
import flash.events.Event;
public class ClaEvent extends Event {
//定义不同的常量;
public static const START_CLASS:String="上课";
public static const OVER_CLASS:String="下课";
//定义一个学科的属性;
private var _claSub:String;
//构造函数根的不同的参数定义不同类型的事件;
public function ClaEvent(ev:String) {
super(ev);
}
//给学科写入setter和getter方法;
public function set claSub(ee:String):void{
_claSub=ee;
}
public function get claSub():String{
return _claSub;
}
}
}
//定义一个教师类;
package son2 {
//导入一个可以发送事件的类;
import flash.events.EventDispatcher;
//教师类必须继承EventDispatcher类,否则无法发送事件;
public class Techer extends EventDispatcher{
//给教师类复合一个自定义的事件类,用来发送;
public var eve:ClaEvent;
//定义两个属性:一是教师名字,一是学科;
public var sub:String;
public var nam:String;
//在构造函数中给教师和学科赋值;
public function Techer(na:String,su:String) {
nam=na;
sub=su;
}
//定义一个方法,给用事件赋值并发送事件;
public function Cla(st:String){
//用Cla方法为事件赋值并初始化;
eve=new ClaEvent(st);
eve.claSub=sub;
//根据参数的不同选择不同的事件发送出去;
if(eve.type=="上课"){
trace("同学们,上课了!!我是"+nam+",这节课是"+sub+"课!");
}
else if(eve.type=="下课"){
trace("下课了!");
}
trace("(这个事件的类型是:"+eve.type+")");
trace("(这个老师所教的科目是:"+eve.claSub+")");
//用下面的方法发送事件;
trace(eve.type+"事件已发送!")
dispatchEvent(eve);
}
}
}
//定义一个学生类;
package son2{
public class Students {
public function Students() {
// constructor code
}
//给学生添加一个处理事件的方法,即:侦听器方法;
//根据不同的事件类型做出不同的动作;
public function study(ev:ClaEvent):void{
//下面访问了事件的type属性;
if(ev.type=="上课"){
trace("全体起立!");
//下面访问了事件的target属性;
trace(ev.target.nam+"好!!!");
}
else if(ev.type=="下课"){
trace(ev.target.nam+"再见!!");
}
else trace("您发送了一个非法事件!!");
}
}
}
|