在上节中,我们介绍到了继承,继承在我们的实际应用中是用的比较多的一种方式。
上节的继承是继承我们自己定义的类,如果要用到影片和类关联起来,我们可能会更多的去继承AS3中已有的类------Sprite和MovieClip;MovieClip这个类我们在2.0中就经常用到,就是影片剪辑,Sprite是什么了,其实就是一个没有帧的 MovieClip,在没有动画的情况下我们会更多的使用Sprite,来看一段代码:
import flash.display.Sprite;
public class MySprite extends Sprite{
public function MySprite(){
graphics.beginFill( 0xFFCC00 );
graphics.drawCircle( 40 , 40 , 40 );
}
}
}
现在我们建立一个MySprite的类(注意保存的AS文件名一定要跟类名一样),因为它是继承的Sprite类,所以我们可以使用graphics来画图,这里我们画了一个圆。
要使用这个类,我们同样要在帧上加一些代码:
var mySprite:MySprite = new MySprite();
addChild(mySprite);
mySprite.x = 100 ;
mySprite.y = 100 ;
这里首先我们还是建一个实例,名字叫做mySprite,接下来我们用到了这句:
addChild(mySprite);
addChild相当于2.0里面把库中的元件载入到场景中,用了addChild后我们画的那个圆就显示在场景中了,与之对应的是removeChild,是从场景中删除
接下来
mySprite.x=100;
mySprite.y=100;
是设置坐标位置,因为是继承的Sprite,因为Sprite有x、y属性,所以MySprite也有了(注意x,y相当于2.0里面的_x和_y)
上面的代码MySprite是用代码画的一个图形,有很多图形我们不可能都用代码去画,这样就失去FLASH的主要功能了,我们还可以把库中的元件链接到MySprite这个类中。
我们新建一个MC,在库中在这个MC上点右键,点链接,会出现一个对话框,将“为ActionScript导出”打上勾,在上面类的后面填上要链接的类,这里我们填上:net.smilecn.MySprite ;基类那里我们填上:flash.display.Sprite
然后再发布看看,会发现不仅有刚才画的圆,我们在刚才的那个MC里画任何东西都会在里面,这样就做到了元件和类的链接。
在FLASH CS3中还加入了一个文档类(document class)的概念,使用文档类后,我们刚才写帧上面的代码就不用了,直接写在文档类里面,文档类就相当于第一帧的位置,这样我们就不用在FLA文件里写代码了,所有代码都写在AS文件里,达到了界面和代码的分离。
现在在建立一个类,MainForm.as:
import flash.display.Sprite;
import net.smilecn.MySprite;
public class MainForm extends Sprite{
public function MainForm(){
var mySprite:MySprite = new MySprite();
addChild(mySprite);
mySprite.x = 100 ;
mySprite.y = 100 ;
}
}
}
我们发现刚才第一帧的代码搬到这个类里面来了,那个第一帧的代码就可以全部删除掉
最后在FLA的属性栏中找到文档类,在后面输入类的位置:net.smilecn.MainForm(注意是包名加类名)
好,现在发布看一下,是不是跟刚才的效果一样。
下节继续!
(本教程如需转载请注明出处!)