讲解3: 类在AS3.0中也有public 和 internal的区分了。 public 表示这个类可以在任何地方导入使用。 internal表示这个类只能在同一个package里面使用。 不写,就默认为internal这个新的关键字。 还有一个属性是final,表示这个类不能被继承了,继承树到此为止。 说白了,这三个属性都是用来让我们更加规范的管理类之间的关系,以便将来修改时心里有谱,大大的方便了修改。
同时,对架构的设计能力要求更高,新手们和小项目还是多使用public吧。越到后来你会越喜欢internal的。我只要看到internal和private这两个关键字,心中就无比的稳定和舒服。想来不少programmer和我都会有同感吧。
2.新建一个元件,并设置它的Linkage和上面的类绑定。
和教程第一章一样,画一个方块,按F8转成MovieClip,再在库中右键点击它,选择"linkage"
 点击看大图
在Class里面写上KingdaMC。注意,id输入框已经被废止了。因为在AS3.0中,再也没有MovieClip.attachMovie(), MovieClip.createEmptyMovieClip(), 以及 MovieClip.createTextField()的存在了。 所有舞台的可见对象都由new来创建。 比如说本例中,symbol1绑定了KingdaMC,那么如果我要在舞台上创建一个KingdaMC,只要写:
var b1:Kingda = new KingdaMC(); addChild(b1);
即可。
还记得以前那些乱七八糟的创建影片和组件的语法吗?什么createClassObject(),DepthManager的createChildAtDepth(),createClassChildAtDepth(),等等等等。我的一个java同事刚刚学习AS时,被上面哪些乱乱的创建函数弄得一头雾水。统统没有了。只有一统天下的new ClassName(),多标准哪,多舒服啊,多好学啊。 所以说,没学AS2.0直接学AS3.0绝对是新手的福气。
第二句,addChild这个很重要。 光有第一句new可不行。那只是告诉Flash我建了一个名字叫b1的KingdaMC要显示,但还没告诉Flash什么时候显示呢。 你什么时候打addChild(b1),那Flash才会把它显示在舞台上。怎么样,多简单。 其实这里省略了一个this。如果你有一个MovieClip名叫BigKingda,希望在这个BigKingda里面加上一个KingdaMC实例,那么就要写:
BigKingda.addChild(b1);
非常简单。
Ctrl+Enter测试,发现创建的KingdaMC,支持拖拽。 大家试着用代码多创建几个KingdaMC,比如用for循环来建个10个8个的来玩玩。
好了,累了,要歇歇了,下次讲Document Class。
本节代码例子参考了Jen deHaan的教程,原因很简单,她选的例子很好的说明了绑定和Document Class,黑羽做了少量的中文改动。她原来的源码例子点此下载。
ActionScript 3.0系列教程(3):Document Class特色为我们带来了什么?
经典论坛讨论帖: http://www.blueidea.com/bbs/NewsDetail.asp?id=2637098
出处:蓝色理想
责任编辑:moby
上一页 AS3.0的类及绑定 [1] 下一页
◎进入论坛Flash专栏版块参加讨论
|