前面一直在帧上写代码,其实主要是为了不用考虑import。
现在来试着认识一下文档类。点击舞台上的空白区域,在属性面板里,有一个“类”,这个就是文档类了。
flash里边一般情况下是一个类对应一个as文件(不要较真),比如我们前面经常用到的MovieClip,这里的文档类我们写的是Main(注意不是Main.as),对应的是Main.as,Main.as其实就是一个文本文档。
填写好文档类之后,点击右边的编辑按钮,就会自动创建一个as文档,然后直接保存。默认应该是保存在和fla文件相同的目录下的。
package {
import flash.display.MovieClip;
public class Main extends MovieClip {
public function Main() {
// constructor code
}
}
}
上面是自动生成的代码。
看一下as文件的结构:
1、最外层是
package{}
这个就是包。
2、public class Main extends MovieClip{}
这句是定义类,一个包里边只能有一个类,而且类名必须和as文件名一致。extends 是继承的意思,这里Main是继承自MovieClip的。
3、import flash.display.MovieClip;
这个类里边我们用到了MovieClip,所以要导入MovieClip,用到其他类也要导入。之前一直在帧上写代码,就是为了不用写这句import。
具体哪个类如何导入,可以看一下帮助。其中flash.display是MovieClip所在的包。
4、构造函数
public function Main() {
// constructor code
}
类里边和类名字相同的函数,就是构造函数。当这个类创建的时候,会自动执行类的构造函数。文档类的构造函数,相当于整个程序的入口,所以我们习惯给文档类取名为Main.as,这是从c语言遗传下来的。
5、深入理解包
还是举个例子吧,比如我们文档类可以这么写,com.hanyeah.Main
然后点击编辑,保存,(先在fla文件所在目录下创建一个文件夹,命名为com;再在com文件夹下创建一个文件夹,命名为hanyeah)将生成的as文件保存在com文件夹下的hanyeah文件夹下。
package com.hanyeah {
import flash.display.MovieClip;
public class Main extends MovieClip {
public function Main() {
// constructor code
}
}
}
注意这里:package com.hanyeah{}
就像MovieCLip的包是flash.display一样,我们的Main的包是com.hanyeah。
---------------------------------------------------------------
可以自己试着在构造函数里边写一些代码,比如用trace输出一些字符串,看看效果。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。