影片剪辑动起来-雅酷互动flash简易教程第2篇

在百度看到有网友留言说更新太慢,在这里向大家先说声抱歉,因为年底事情比较多,所以很难静下来写第三篇,但是,以后我会尽量以每周一篇的速度进行更新,如果有关心我的教程的人可以到我的博客(http://www.cnblogs.com/nethinks)来看,或者使用RSS直接订购我的博客,可以更及时地得到教程更新。

废话少叙,下面我们继续来讲解关于影片剪辑的知识。

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

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

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

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

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

比如myMc._x

myMc._y

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

比如:

this.createEmptyMovieClip(“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处于X轴为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试一下,看看什么效果。

到这里我们基本上使用程序的方式使影片剪辑动起来了,只要多动脑筋,你就可以利用这些制造出丰富多彩的动画效果。

但是,有人可能也发现了问题。就是没有办法让动画停下来。这是因为如果我们不把onEnterFrame清除的话,它会一直以帧频的频率运行下去。这不仅使你的动画停不下来,而且还将一直占用着你的CPU资源。所以,当onEnterFrame的任务完成以后,一定要把它及时地结束。

使用delete onEnterFrame可以清除正在运行的onEnterFrame。

所以上面的例子,我们可以改成下面这样。

myMc._x=0;

onEnterFrame=function(){

myMc._x= myMc._x+1;

if(myMc._x>=200){

delete this.onEnterFrame;

}

}

再次运行试一下,影片剪辑运动到200的位置停下来了。

再次拿其他的属性来试一下吧。今天就说到这里,下次我们来研究一下缓冲效果,以及如何使用as实现更复杂的运动效果。

有问题的可以到我的博客(http://www.cnblogs.com/nethinks)或者加QQ群(46428099)进行交流。

文章来源:幻立方

posted on 2009-02-07 21:18 立方光年 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/nethinks/archive/2009/02/07/1386021.html

影片剪辑动起来-雅酷互动flash简易教程第2篇相关推荐

  1. 懒人自有懒办法——雅酷互动flash as2简易教程第4篇

    懒人自有懒办法--雅酷互动flash as2简易教程第4篇 据说,这世界是由懒人创造的.因为实在懒得不愿走路,所以,我们发明了汽车,因为实在懒得不愿意提东西,所以我们发明了起重机:因为实在懒得不愿意计 ...

  2. 让运动更流畅、更优雅、更丰富——雅酷互动flash as2简易教程第3篇

    让运动更流畅.更优雅.更丰富--雅酷互动flash as2简易教程第3篇 现在大家应该都会使用AS程序让影片剪辑动起来了.但是你按照我教你的方法做来做去,一定做得很郁闷,为什么呢?别人的FLASH看起 ...

  3. 雅酷互动flash as2简易教程第3篇

    现在大家应该都会使用 AS程序让影片剪辑动起来了.但是你按照我教你的方法做来做去,一定做得很郁闷,为什么呢?别人的 FLASH看起来又流畅,又优雅,又漂亮,动起来那个好看啊,可是我的 FLASH为什么 ...

  4. 雅酷互动flash as2简易教程第4篇

    据说,这世界是由懒人创造的.因为实在懒得不愿走路,所以,我们发明了汽车,因为实在懒得不愿意提东西,所以我们发明了起重机:因为实在懒得不愿意计算,所以,才有了计算机,实在懒得不愿意写汇编语言,懒人才去发 ...

  5. 玩的就是影片剪辑-雅酷flash as2简易教程第1篇

    玩的就是影片剪辑-雅酷flash as2简易教程第1篇 上一篇教程出来以后,很多网友留言,问我为什么不直接讲as3,而是很过时的唠叨as2,这里首先澄清一下,as3是一个好东西,本博客并非要视as3为 ...

  6. 雅酷FLASH AS2简易教程第0篇

    [url=javascript:void(0);/*1251087455109*/]雅酷FLASH AS2简易教程第0篇[/url] [url=http://www.5uflash.com/flash ...

  7. VC使用flash简易教程

    1.基本概念: VC为Flash实现了一个CWnd的包装:CShockwaveFlash,该类实现了FlashActiveX控件的所有功能. shockwave flash object控件有四个事件 ...

  8. 怎么在FLASH的场景中控制影片剪辑的播放和停止

    <--好消息!好消息!好消息! 粉丝超过2000的公众号主快来接单吧,快来领取你的第一笔广告费.(粉丝数不够的小伙伴,请私信我一并解决) 新用户注册红包1.8元,新用户注册并接单红包9.9元. ...

  9. flash AS3.0访问加载的SWF文件中的属性、方法以及类、库中的影片剪辑

    对于FLASH,我们可以把任何的可视化元件都看成某个类文件的具体实例,包括swf文件. 我们可以把swf文件看成一个类的具体实例,而它里面拥有个个其他类的实例对象,例如: 我们新建一个loaded.f ...

最新文章

  1. windows客户端安装
  2. 公积金联名卡——提取公积金用,用身份证即可办理
  3. 2.3_模型和交叉检验
  4. STM32F4 HAL库开发 -- 软件包
  5. IntelliJ IDEA2017 修改缓存文件的路径
  6. mysql 备份表_Mysql 表的备份与恢复
  7. 曾经的python爬虫挣钱生活_聊一聊,这些年我用Python爬虫挣钱的那些事
  8. linux磁盘常用操作命令
  9. Asp.Net母版页元素ID不一致的体现
  10. 第四方支付 java代码_第三方支付平台 API聚合支付系统 云支付源码 PHP第四方pi支付...
  11. 【预测模型】基于麻雀算法优化最小二乘支持向量机实现数据分类matlab代码
  12. 原码一位乘法和补码一位乘法
  13. 利用矩阵快速幂求解斐波那契数列
  14. 顶级白嫖!!!八个python免费自学网站一周搞定python(抓紧收藏)
  15. 查询条件中含有加号_中国邮储银行信用卡公众号账单查询
  16. 高考成绩查询2021汕头市,2021汕头市地区高考成绩排名查询
  17. TRC丨艾美捷TRC ACP-5197说明书
  18. Lua 脚本在redis中的入门使用——eval
  19. 【git push指令提交项目报错】 fatal: unable to access ‘https://github.com/xxxxx/xxx.git/‘: OpenSSL SSL_read: Co
  20. 组装好基因组后之预测基因

热门文章

  1. 六百左右的蓝牙耳机哪款好?适合学生党的四款蓝牙耳机推荐
  2. 在web中引入数据库
  3. 魔兽争霸微操教学(精华篇)
  4. 【软考 系统架构设计师】企业信息化战略与实施④ 企业信息化与电子商务
  5. 图像分类,物体检测,语义分割,实例分割等概念
  6. 【Spring】基于注解实现事务控制(银行转账)
  7. 微信自动跳转到浏览器
  8. Modprobe加载驱动问题
  9. android studio添加按钮界面,2.3 使用Android Studio 简单设计UI界面
  10. Python 数据分析之 3 —— pandas 数据分析