打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
flash as2简易教程第2篇

上次我们学会了如何创建影片剪辑和如何从库中调用影片剪辑。但是flash之所以在动画领域一骑绝尘,靠的可是出类拔萃的动画能力。所以,如何用as实现动画才是问题的关键。现在我们就来探讨一下这个问题。

在探讨之前,首先请确认你理解这个概念:帧。已经了解该概念的同学,这一段可以华丽地掠过了。帧是动画里的一个概念,说简单点,就是电影中的一格。见过电影胶片的人都知道,电影是由一格一格的画面组成的。电影镜头靠在极短的时间里播放这些画面而使镜头连贯成运动的影像,具体说是一秒钟24格。动画里的帧也是这样的概念,而帧频就是指每秒钟播放的整数,flash就是靠这个来实现动画播放的,传统的flash关键帧动画也是靠播放头沿时间轴播放页实现动画的。没见过时间轴的,可以打开flash看一眼。

那么,如果我们使用as,又如何让影片剪辑动起来呢?只要我们也以帧频的速度控制影片剪辑的属性就行了。

下面介绍一些影片剪辑常见的属性。剩下的大家可以去查flash的帮助。(使用帮助是自学软件语言最方便的学习方法,只要按F1就出来了。)

在上一篇中其实我们已经接触到了一些。

比如 myMc._x

myMc._y

其中 myMc是你的影片剪辑名称。注意这里的名称不是它在库里作为元件的名称,而是它在场景里的名称,也就是 createEmptyMovieClip中你为它起的那个名字,或者 attachMovie中的第二个名字。

比如:

this.createEmpty MovieClip( “myMc”,1);中的 myMc

或者

this.attachMovie("myMovie" ,"myBtn",1);中的myBtn,注意不是myMovie,不知道myMovie是什么的,回去看第二篇。

当然你也可能不是使用as 创建或者加载的影片剪辑,而是直接使用鼠标从库中拖过来的影片剪辑。那 ok,用鼠标点中它,在属性面板中为它命名,此处命的名就是你在程序中使用它的时候要用的名称,就像你叫“小张”,小张就过来了。

x是影片剪辑X轴坐标,_y是影片剪辑的Y轴坐标。

myMc._x=10;

myMc._y=20;

这两句代码就是把 myMc放到x轴坐标为10,y轴坐标为20的位置。

自己从库中加载一个影片剪辑,把这两个数字改几次,试一下。

其他的属性同理。

_alpha是影片剪辑的透明度。

_width是影片剪辑的宽度。

_height是影片剪辑的高度。

_rotation是影片剪辑的角度。

_xscale是影片剪辑横向上的扩展度。

_yscale是影片剪辑总向上的扩展度。

没有明白这几个属性什么意思的,也按照上面的方法试一下。

好了,既然明白了这几个属性的意思,我想动画应该怎么实现,大家估计已经猜出来了,比如我想让 myMc 从左侧横着飞进场景的话,只需要控制_x,使它从一个负值,变成某一个正值就可以了。比如让他变到100,那它就停在x轴坐标100的位置了。

其他的也同理,比如渐现,渐隐,就是一个透明度的控制,也就是对_alpha的值的控制,变大变小则是对_width、_height、_xscale、_yscale的控制来实现,而旋转,则通过_rotation的控制来实现。

原理知道了,如何实现呢。

通过循环。只要我们建立一种循环,使他在每次循环的过程中改变myMc 的属性值就可以了。比如第一次循环,myMc._x=0;第二次循环,把这个值加 1,myMc=1,以此类推,myMc=2,=3,=4,循环下去,而 flash 的帧频如果是25,也就是每秒钟播放25帧的话,如果我们使这段程序按帧频的频率进行播放的话,那么一秒钟以后,myMc是不是向右移动了25个像素。

原理绕来绕去说半天,其实实现起来很简单,我们只需要找到一个能够使程序以帧频的频率运行的方法就可以了,这个方法就是使用onEnterFrame。多看它几眼,记住它吧,你以后会经常用到它。

看下面的代码:

myMc._x=0;

onEnterFrame=function){

myMc._x= myMc._x+1;

}

第一句不用解释了,使myMc处于又轴为0的位置上。下面

onEnterFrame=function(){}

这是flash里常见的一种形式,onEnterFrame简单解释一下,就是使里边的程序体,按照帧频的频率来运行。

比如上面的例子中,如果你的flash文件帧频是25,那么,myMc._x=myMc._x+1就在一秒钟内运行了25次。

最后向初学者解释一下myMc._x=myMc._x+1的意思,这句话实际上就是把右侧myMc._x+1的值赋给左侧的myMc._x.。比如第一次循环的时候,myMc._x的值是0,那么0+1以后,再赋给myMc._x,此时 myMc._x变成1,循环第二次的时候,1+1再赋给myMc._x,此时myMc._x的值变成2。当然,这句程序还有个更简单的写法:myMc._x++;作用和myMc._x=myMc._x+1的作用是一样的。

那如果myMc._x=myMc._x+2该怎么写? myMc._x+2?错了,正确的简写方法是myMc._x+=2;

好了,下面运行一下上面的程序,看看什么效果,试着把前面提到的影片剪辑的其他属性换掉_x试一下,看看什么效果。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Flash中的load、onEnterFrame、onClipEvent(enterFra...
三、FLASH调用外部文件---调用外部*.swf文件(加载到影片剪辑中)(5) - Qz...
as3.0资料1
如何让Flash加载调用外部图片和元件
AS入门教程第七课影片剪辑第一节创建影片剪辑
ActionScript菜鸟基础终极教程7
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服