·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS3学习经验漫谈:包与类的用途理解

时间:2013-02-18 23:54blueidea.com
初学AS包与类的同学一定对书上那些繁琐的语言表示痛苦吧,我又何尝不是呢,拿着一本书一看就是半天,可能还看不明白,学了这么久,自己的脑袋都不知死掉多少脑细胞了

  初学AS包与类的同学一定对书上那些繁琐的语言表示痛苦吧,我又何尝不是呢,拿着一本书一看就是半天,可能还看不明白,学了这么久,自己的脑袋都不知死掉多少脑细胞了。

  我在微博上发表过一篇制作眩光效果的文章,是我参考优秀的作品做的,很绚丽的效果,我发现高手都喜欢用严谨的类来管理制作流程,这是一定要学会的,不用怕,程序的本质是简单的,只要了解了规律,就很好深入。
有同学对我说,怎样做出那种逼真的效果呢,以FL这种传统的动画制作软件,是不可能达到那种效果的,这时候,CS5.5的内置包以及AIR给我们的制作带 来了很大的帮助。苹果公司对ADOBEFLASH一直给于期望与支持,并不断开发出能够实现更多特效界面的内置程序,使得Flash在苹果产品上的运用相 当强大。因此,学会用FL内置的包类来设计作品是非常有用的,也是极其重要搞得。

  简单介绍一下,关于Fl的内置包,FL总共有65个包,每个包又有好几十种类,每个类又有几十种方法属性,这些东西你一看就会晕的,但没关系,我们只要学会其中对我们设计最有帮助的包就行了,介绍三大包:

1.滤镜包
滤镜的出现是Flash展现特效的法宝,通过导入滤镜:import flash.filters.*,滤镜包括溶解,投影,发光,渐变发光,浮雕,模糊等几大特点,能做出炫目的动画,比如光晕,水流,烟雾等等。。。

2.动画包(FL.TRANSITON)
虽然说可以不用程序做动画,Flash自带的动画编辑器就可以啊,但动画包的出现给了更多的便利,志勇一行程序就能轻松实现很好的动画效果,遗憾的是,虽 然可以这样实现,但参照程序所给的动画效果,没有多大自由性。导入动画包:import fl.transitions.Tween & import fl.transitions.easing.*,常见的动画效果有:缓动,加速运动,回弹运动,波形运动,以及多方向加强型运动。

3.显示包
这个是所有显示对象的核心包,显示包是动画游戏设计的灵魂,是最重要的一个包,里面有近九十种类。其中MovieClip类和Sprite类使用到最多的,他们是创建图形和制作运动的主要类。
还有很多不再说了。。。

  导入类的方法很重要,一共有三种不同的方法,为了并制作不同的东西,他们是不一样的。

1.文档类:
这种类的编写必须要先继承(extends)Sprite或者MovieClip,这是规定而已,否则会出错,文档类只要在属性面板下面的文档类框中写入类名称就行了,列如创建一个圆形的图形的文档类:
打开AS文档,写以下代码:
package{
       import flash.display.Sprite
       public class CircleSample extends Sprite{
       public var ball:Sprite = new Sprite();
       public function CircleSample(){
       ball.graphics.beginFill(0xff0000);
       ball.graphics.drawCircle(0,0,100);
       ball.graphics.endFill();
       ball.x = 300;
       ball.y = 200;
       addChild(ball);
      }
   }
}

注意一下,大家发现没有,addChild函数前面没有容器对象,因为是文档类,可以不用写,默认的容器对象就是STAGE了。
保存,命名为CircleSample.as,新建文档,在文档类框上鞋上CircleSample,并和类文件保存在同文件夹里,完成测试,出现一个圆,很有意思吧。

  2.文件绑定类
这个类必须要和库里面的MC(影片剪辑)进行绑定,也就是在MovieClip的链接参数上写下类的名称即可。这个与文档类有什么异同呢,最大的不同,它 主要能做出带有复杂变化以及交互的东西,主要面向影片剪辑,所以灵活性比文档类大,文档类相对静态一些。下面做一个小球不断上升的运动:
编写类CircleMove:
package{
       import flash.display.MovieClip;      
       public class CircleMove extends MovieClip{
              public function CircleMove(){
              this.addEventListener(Event.ENTER_FRAME,Mot)
                           
       }
              function Mot(e:Event){
               this.y-=5;
              if(this.y<=0){
                this.y=400;
                 this.x = Math.random()*550;

        }
   }
}

新建文档,在库中建个MC,画个圆,在圆的类链接上写上:CircleMove,并在root第一帧写上:
function moves(){
for(var i =0;i<50;i++){
var ball:CircleMove = new CircleMove();
this.addChild(ball)
ball.x = Math.random()*400;
ball.y = Math.random()*300+400;
}
}
moves()
完工!运行即可。可以发现,库绑定的类,只需要加"this"就能表示物体了。
3.导入包
直接导入想要的包即可:import + 包路径
学好Flash各种包与类,才能开发出更加好玩的互动游戏。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器