在上一篇《在界面上显示战机》中,编写了StartPlane类。下面我们来看看这些代码是什么意思。如下所示,粗体为增加的代码,细体为FlashDevelop生产的代码。
package
{
import flash.display.MovieClip;
/**
...
@author yl
*/
public class StartPlane extends MovieClip
{
public function StartPlane():void {
var fighter:Fighter = new Fighter();
fighter.x = 100;
fighter.y = 100;
addChild(fighter);
}
}
}
首先在class后面编写StartPlane,他就是这个文档类名(类名和文档名一样)。同时StartPlane继承(extends)了MovieClip。凡是要显示的对象都要继承MovieClip或Sprite。由于文档类为场景的对应类,且场景需要显示出来,因此文档类需要继承MovieClip或Sprite。
编写StartPlane类的构造方法:
publicfunction StartPlane():void {
}
构造方法为生成对象的时候自动调用,因此常用来初始化。
方法的定义要以关键字function作为开始,后接方法名以及圆括号对( )。写好( )后就是返回类型,先输入一个冒号,后面跟着一个用以描述信息的类型。
构造方法中,首先创建了一个叫做fighter的变量:
varfighter:Fighter = new Fighter();
通过var关键字,程序就会知道你正在创建于一个变量。
var后面跟着变量名称,可以任意取名(一般以小写字母开头,并见名知意)。有了变量名,就可以通过名字直接访问变量里面的内容。
冒号后面为变量的类型,可以想象变量为一个存储器,它存储的东西是有规定的。那么类型就是规定变量到底能存放什么东西。在这里的数据类型为Fighter,表示变量fighter智能存储new Fighter生成的对象。
varfighter:Fighter = new Fighter();
这句代码表示的是:定义一个专门存储Fighter类型的变量,然后将通过new生成Fighter对象赋值给fighter。步骤如下:
第一步,定义一个变量fighter
fighter = ?
第二步:new Fighter()后,生成一架战机对象,但是它没有名字
第三步:将new生成的战机对象赋值给fighter,表示生成的战机有了名字。以后可以通过fighter访问战机。
每一个对象(元件)都有坐标属性,因此将战机fighter定位到(100, 100)处。
fighter.x= 100;
fighter.y= 100;
现在已经将生成的战机赋值给fighter变量,但是他还没有显示在场景上,下面的代码是让fighter加载到场景上。
addChild(fighter);
addChild是AS3的内置方法,他会将括号里面的对象(MovieClip或Sprite)显示在场景中。