实例详细讲解Flash动画的Tween补间

flash动画

  说到补间,很多人都会想到在时间轴里定义两个关键帧,然后创建一个补间,其实AS也可以完成等效的工作,而且能完成的更好。

  要用程序创建补间,有两种方法,一种是通过setInterval函数,定时移动mc,可以达到效果,但比较麻烦。第二种就是今天要推荐的通过Tween类来创建补间动画。

  为什么Tween比setInterval方便呢,首先代码量少,看着舒服,其次,Tween类可以使用一些比较有名的缓动类,还有,Tween类可以广播和侦听事件,这三点就足以让我们选择Tween而不是setInterval。

  先来说一下Tween类的用法

  要用Tween类,首先要导入Tween类

import mx.transtions.Tween;

  Tween类的语法是

var twMove:Tween=new Tween(mClip,"_x",null,0,550,10,true);

  来解释一下:

mClip:显示对象——对要显示对象的引用
_x:要补间的属性
缓动函数:对一个缓动函数的引用,这里是null,就是不引用
0——补间属性的开始值
550——补间属性的结束值
10——持续时间
使用秒——true 使用,false不使用

  由于Tween类广播事件,因此可以对Tween类建立侦听器,具体Tween类的方法,请查看帮助。

  下面是一个实例,请事先做好链接标识符为“ball”的MC,拷贝以下代码到第一帧。

import mx.transitions.Tween;
import mx.transitions.easing.*;
var aClass=[Back,Bounce,Elastic,Regular,Strong];
var aEasingMethod:Array=new Array();
//在aEasingMethod中放入每个缓动方法
for(i=0; i < aClass.length; i++){
  aEasingMethod.push(aClass[i].easeIn);
  aEasingMethod.push(aClass[i].easeOut);
  aEasingMethod.push(aClass[i].easeInOut);
}
//定义初始变量
var nX=10;
var Y=20;
var oClips:Object=new Object();
//建立侦听器
var tListener:Object=new Object();
tListener.onMotionFinished=function(twObject:Tween){
  //缓动结束时按原路径返回
  twObject.yoyo();
}
for(i=0; i < aEasingMethod.length; i++){
  depth=this.getNextHighestDepth();
  mClip=this.attachMovie("ball","ball"+i,depth,{_x:nX,_y:Y});
  //设置x坐标
  nX+=mClip._width+10;
  //将一个缓动方法添加到oClips对象
  oClips[mClip._name]=aEasingMethod[i];
  //当用户点击时开始_y属性的补间
  mClip.onPress=function(){
    var twMove:Tween = new Tween(this,"_y",oClips[this._name],20,400,4,true);
    //添加侦听器
    twMove.addListener(tListener);
  }
}

  点击这里全屏观看效果

时间: 2024-08-30 14:04:33

实例详细讲解Flash动画的Tween补间的相关文章

实例详细讲解ASP教程之ASP中使用变量的方法

变量|教程 变量用于存储信息. 假如在子程序之外声明变量,那么这个变量可被ASP文件中的任何脚本改变.假如在子程序中声明变量,那么当子程序每次执行时,它才会被创建和撤销 实例: 声明变量 变量用于存储信息.本例演示如何声明变量,为变量赋值,并在程序中使用这个变量 <html><body><%dim namename="Donald Duck"response.write("My name is: " & name)%>&l

Spring中@Transactional事务回滚(含实例详细讲解,附源码)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员.但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了.这时候我们希望如果成员删

实例详细讲解DIV+CSS网页制作布局技术

css|网页 CSS布局常用的方法:float:none|left|right 取值:none:默认值.对象不飘浮left:文本流向对象的右边right:文本流向对象的左边 它是怎样工作的,看个一行两列的例子 xhtml:<div id="wrap"><div id="column1">这里是第一列</div><div id="column2">这里是第二列</div><di

实例详细讲解JSP访问数据库的方法

js|访问|数据|数据库 JSP(JavaServer Pages)是由Sun 公司倡导.许多公司参与建立的一种动态网页技术标准.使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面.使用JSP标识(tag)或者小脚本(Scriptlet)来生成页面上的动态内容.生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行. 数据库连接对动态网站来说是最为重要的部分,Java中连接数据库的技术是JDBC(Java Datab

RabbitMQ与java、Spring结合实例详细讲解(转)

         林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka          摘要:本文介绍了rabbitMq,提供了如何在Ubuntu下安装RabbitMQ 服务的方法.最后以RabbitMQ与java.Spring结合的两个实例来演示如何使用RabbitMQ. 本文工程免费下载   一.rabbitMQ简介 1.1.rabbitMQ的优点(适用范围)1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器.2. 健壮

超级实例详细讲解超级连接的四种状态的应用

问: 我已经使用CSS定义了超链接的样式,但是浏览时hover(鼠标悬停)却不起作用.为什么会这样?是浏览器的问题吗? 答: 虽然你认为可能原因是浏览器问题,但是更多的可能是你样式定义时顺序错误.为了保证能看到不同状态下的连接样式,正确的样式顺序应该是: " link - visited - hover - active "或" LVHA "(缩写). 核心内容: 每个选择符selector都有一个"specificity"如果两个selecto

实例详细讲解PHP中使用的运算符号

运算符号 运算符号可以用来处理数字.字符串及其它需要比较运算的条件.php 的运算符号和 c 语言的运算符号与很类似,对于有经验的程序设计人员,应可以很顺利的掌握 php 的运算符号. 不同的运算符号,其实还是有优先顺序,就像小时候在学数学时,老师会教:先乘除.后加减.在 php 的运算优先顺序可以参考下面的表格,在混合式的情形下,愈往下表示优先权愈高. 左至右or左至右xor左至右and左至右.=   &=   |=   /=   %=   ^=   =   +=   -=   *=左至右?

实例详细讲解ASP生成静态页面方法

1.WITH TEMPLET意思是,生成的页面架构将采用某个已设定的模板,在此之前我的一篇教程中介绍过,希望各位在看本教程之前对ASP采用模板应熟悉下. 2.ASP转变为HTML.不要我再说ASP转变成HTML的好处了吧,其中最值得知道的就是:静态HTML页和动态页对服务器的要求承受能力小得多,同样,静态HTML搜索几率远比动态页面的多得多. 那么,我现在需要处理的技术问题就是: 1.如何实现模板技术? 2.如何实现2HTML技术? 3.如何让模板技术与2HTML技术结合? 一.先进行技术原理分

Android动画之补间动画(Tween Animation)实例详解_Android

本文实例讲述了Android动画之补间动画.分享给大家供大家参考,具体如下: 前面讲了<Android动画之逐帧动画(Frame Animation)>,今天就来详细讲解一下Tween动画的使用. 同样,在开始实例演示之前,先引用官方文档中的一段话: Tween动画是操作某个控件让其展现出旋转.渐变.移动.缩放的这么一种转换过程,我们称为补间动画.我们可以以XML形式定义动画,也可以编码实现. 如果以XML形式定义一个动画,我们按照动画的定义语法完成XML,并放置于/res/anim目录下,文