首页 > ActionScript 3, 一步一步学ActionScript 3.0 > [ActionScript 3]一步一步学ActionScript 3.0(四)

[ActionScript 3]一步一步学ActionScript 3.0(四)

在上节中,我们介绍到了继承,继承在我们的实际应用中是用的比较多的一种方式。

上节的继承是继承我们自己定义的类,如果要用到影片和类关联起来,我们可能会更多的去继承AS3中已有的类——Sprite和MovieClip;MovieClip这个类我们在2.0中就经常用到,就是影片剪辑,Sprite是什么了,其实就是一个没有帧的 MovieClip,在没有动画的情况下我们会更多的使用Sprite,来看一段代码:

  1. package net.smilecn{
  2.    
  3.     import flash.display.Sprite;
  4.    
  5.     public class MySprite extends Sprite{
  6.        
  7.         public function MySprite(){
  8.             graphics.beginFill(0xFFCC00);
  9.             graphics.drawCircle(40, 40, 40);
  10.         }
  11.        
  12.     }
  13.    
  14. }

现在我们建立一个MySprite的类(注意保存的AS文件名一定要跟类名一样),因为它是继承的Sprite类,所以我们可以使用graphics来画图,这里我们画了一个圆。

要使用这个类,我们同样要在帧上加一些代码:

  1. import net.smilecn.MySprite;
  2. var mySprite:MySprite = new MySprite();
  3.  
  4. addChild(mySprite);
  5.  
  6. mySprite.x=100;
  7. mySprite.y=100;

这里首先我们还是建一个实例,名字叫做mySprite,接下来我们用到了这句:

  1. addChild(mySprite);

addChild相当于2.0里面把库中的元件载入到场景中,用了addChild后我们画的那个圆就显示在场景中了,与之对应的是removeChild,是从场景中删除

接下来

  1. mySprite.x=100;
  2. 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:

  1. package net.smilecn{
  2.    
  3.     import flash.display.Sprite;
  4.     import net.smilecn.MySprite;
  5.    
  6.     public class MainForm extends Sprite{
  7.        
  8.         public function MainForm(){
  9.            
  10.             var mySprite:MySprite = new MySprite();
  11.  
  12.             addChild(mySprite);
  13.  
  14.             mySprite.x=100;
  15.             mySprite.y=100;
  16.            
  17.         }
  18.     }
  19. }

我们发现刚才第一帧的代码搬到这个类里面来了,那个第一帧的代码就可以全部删除掉

最后在FLA的属性栏中找到文档类,在后面输入类的位置:net.smilecn.MainForm(注意是包名加类名)

好,现在发布看一下,是不是跟刚才的效果一样。

下节继续!

(本教程如需转载请注明出处!)

  1. liuxinsudi
    2009年5月18日19:38 | #1

    不错,对我这样的新手很好

  1. 本文目前尚无任何 trackbacks 和 pingbacks.