在上节中,我们介绍到了继承,继承在我们的实际应用中是用的比较多的一种方式。 上节的继承是继承我们自己定义的类,如果要用到影片和类关联起来,我们可能会更多的去继承AS3中已有的类——Sprite和MovieClip;MovieClip这个类我们在2.0中就经常用到,就是影片剪辑,Sprite是什么了,其实就是一个没有帧的 MovieClip,在没有动画的情况下我们会更多的使用Sprite,来看一段代码: package net.smilecn{ import flash.display.Sprite; public class MySprite extends Sprite{ public function MySprite(){ graphics.beginFill(0xFFCC00); graphics.drawCircle(40, 40, 40); } } } 现在我们建立一个MySprite的类(注意保存的AS文件名一定要跟类名一样),因为它是继承的Sprite类,所以我们可以使用graphics来画图,这里我们画了一个圆。 要使用这个类,我们同样要在帧上加一些代码: import net.smilecn.MySprite; 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: package net.smilecn{ 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(注意是包名加类名) 好,现在发布看一下,是不是跟刚才的效果一样。 |