测试在AS3.0中两个独立的类文件中的类是如何通信的。

测试在AS3.0中两个独立的类文件中的类是如何通信的。
有了这个想法后,首先我就建立一个调用主类,名为mainClass,在这个类中import另外一个类文件中的类:charCtrl类,主要用到charCtrl的自定义方法charCtrl.ctrl();最后在classMessage.fla文件中trace出来。
下面是mainClass类:
 1 package  classes {
 2    import flash.display.Sprite;
 3    import classes.charCtrl;
 4    
 5    public class mainClass extends Sprite{
 6        public var myName:String = "winshe";
 7        public var myQQ:String = "23611316";
 8        public var mycharCtrl:charCtrl = new charCtrl();
 9
10        public function mainClass():void{
11            trace(mycharCtrl.ctrl(myName,myQQ));
12        }

13    }

14}
下面是charCtrl类:
 1 package  classes {
 2    import flash.display.Sprite;
 3    
 4    public class charCtrl extends Sprite{
 5        public function charCtrl(){
 6        }

 7        public function ctrl(str1:String,str2:String):String{
 8        return ("我叫" + str1+" ," + "我的QQ号是:" + str2);
 9        }

10    }

11}
最后直接在classMessage.fla文件中的Document class中写到:classes.mainClass就可以了。

trace结果:我叫winshe ,我的QQ号是:23611316

注意一点的是:最初我在charCtrl类中将charCtrl.ctrl()写为private,结果出错了,出错提示为:
ReferenceError: Error #1069: 在 classes.charCtrl 上找不到属性 ctrl,且没有默认值。
 at classes::mainClass$iinit()
而改为public后就正常了!
AS3.允许将两个类写到一个文件里面,但不允许写到一个包里面,更不支持类中类。恼火。
源文件在这里下载(大小:5K)

你可能感兴趣的:(测试在AS3.0中两个独立的类文件中的类是如何通信的。)