`
java-admin
  • 浏览: 1366484 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

android animation alpha

阅读更多

 

8.4 淡入和淡出

闪动效果是最简单的动画,是打开动画宝库的钥匙。通过扩展闪动动画,可以创建略微复杂的动画效果:淡入和淡出。

8.4.1 数学模型

在设计动画时,设计者必须经常和数学模型打交道。初学者也许会被“数学模型”这个词吓倒,不过不用太担心,淡入淡出使用的数学模型并不复杂:

(1)透明度值=初始透明度+时间*变化速率。

(2)变化速率=变化量/单位时间周期。

其轨迹图像如图8-13所示。

相应的代码描述为。

var alpha_offset:Number;
var timer_count:Number;
Object.alpha = Object.alpha * ( 1 + timer_count * alpha_offset );
图8-13 淡入效果轨迹图像

根据本模型,假设变化速率为0.05时,则每个时间周期,对象的透明度增加0.05。如果对象的初始透明度是0,对象在动画开始的时候完全不可见, 则经历1个时间周期后,对象的alpha变为0.05;经历2个时间周期后,对象的alpha变为0.10;经历3个时间周期后,对象的alpha变为 0.15……当经历20个时间周期后,对象的alpha变为1.00,此时对象完全不透明显示。换而言之,这一过程就是动画对象在20个时间周期内从不可 见逐渐切入到完全显示状态,实现了对象的淡入。

同理,淡出效果也可以使用此模型,不过变化速率是一个负值。假设变化速率为-0.05,则每个时间周期,对象的透明度减少0.05。对于一个初始 alpha属性为1的对象,为当经历20个时间周期后,其alpha值变为0.00,此时对象完全透明不可见。这一过程实现了动画对象由完全显示到完全消 失的渐变效果,是为淡出。

考虑到淡入和淡出效果都是基于同样的数学模型,可以在代码实现时运用函数将其过程模块化。

(1)建立参数fadeInOut(),该函数不需要返回值,但显然需要参数,分别是对象anim_obj,以及对象的变化速率fade_rate。代码如下。

function fadeInOut(anim_obj:DisplayObject,fade_rate:Number):void{
return;
}

(2)在函数内添加代码,以根据变化速率fade_rate控制动画对象anim_obj的alpha属性。本函数将来是在定时器的触发响应函数中 周期调用的,所以每一次执行时,只需要修改1*fade_rate到anim_obj.alpha即可。只需要一条语句就能达到目的。

anim_obj.alpha+=fade_rate;

(3)将此函数添加到例8-4中,修改定时器响应函数,注释掉原有的语句,新添加对fadeInOut()的引用。整体代码如下:

var animTimer:Timer = new Timer(50, 100);
animTimer.addEventListener("timer", animTimerHandler);
animTimer.addEventListener("timerComplete", animComplete);
animTimer.start();
function animTimerHandler(event:TimerEvent):void {
//动画代码编写入口
//animObject1.alpha=(animObject1.alpha==1?0:1);
fadeInOut(animObject1,-0.05)//新增对fadeInOut()函数的引用
}
//响应定时器结束事件
function animComplete(event:TimerEvent):void {
animObject1.alpha=1;
}
//自定义的模块
function fadeInOut(anim_obj:DisplayObject,fade_rate:Number):void{
anim_obj.alpha+=fade_rate;
return;
}

(4)至此,代码初步成型了。运行程序,可以看到显示对象animObject1逐渐淡出的效果。如果把fadeInOut函数中的 fade_rate设为正值,这可以令alpha初始状态为0的不可见对象逐渐淡入。fade_rate的绝对值越小,淡入淡出的过程就越平滑,读者可自 行实验。

使用如此简短的代码,便能实现淡入淡出效果,可见AS3确实是很简便的动画控制语言。下一节将介绍如何进一步强化模块,使其能胜任更多的任务。

 

 

http://hi.baidu.com/sun_star_mao/blog/item/4b731fb5f253317a8bd4b2b7.html

分享到:
评论

相关推荐

    android objectanimator animation

    android animation: 移动,透明度,缩放,旋转的实现

    Android 呼吸灯效果

    Android 呼吸灯效果,就是Animation的淡入淡出循环播放

    Android编程之Animation动画详解

    本文实例讲述了Android编程之Animation动画用法。分享给大家供大家参考,具体如下: Animations 一、Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行...

    Android动画例子(AnimationExample)

    Android动画例子(AnimationExample),写了四种效果 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 文章:...

    AndroidAnimation:Android动画工程

    Android动画所有的动画源码我都集合这这个工程里面了,每个模块都是不同的部分的源码: app模块:Android动画(一)-alpha,scale,translate,rotate,set的xml属性及用法源码02_animation_code模块:Android动画篇...

    Android动画效果translate、scale、alpha、rotate详解

    简单易懂,非常适合入门的开发者了解android 的animation 。 博文参考

    Android应用中设置alpha值来制作透明与渐变效果的实例

    Android系统支持的颜色是由4个值组成的,前3个为RGB,也就是我们常说的三原色(红、绿、蓝),最后一个值是A,也就是Alpha。这4个值都在0~255之间。颜色值越小,表示该颜色越淡,颜色值越大,表示该颜色越深。如果RGB...

    对应源码

    博客《Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/39996643

    Android 动画

    Android View Animation----alpha scale translate rotate

    <Animation动画详解(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画>对应源码

    博客&lt;Animation动画详解(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画&gt;对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/40117115

    android tween

    补间动画包含有scale,rotate,translate,alpha

    Android程序技术:19.3动画-补间动画2.pptx

    Android 程序技术;;PART3;补间动画;选择创建好的anim文件夹右键选择Animation Resource File创建xml文件,再打开的对话框中录入File ...打开的对话框中录入File name录入alpha_animation。;补间动画;补间动画;谢谢观看

    listviewanimationdemo

    基于最新的AndroidStudio实现。Appearance animations for items in ListViews, GridViews, other AbsListViews; Built in animations include Alpha, SwingRightIn, SwingLeftIn, SwingBottomIn, SwingRightIn and ...

    Android代码-正弦曲线动画绘制

    SineView SineView allows you to paint and animate a sine ...sv_sine_alpha: to apply an alpha to the sine (0-1) sv_sine_phase: Sine phase parameter sv_sine_amplitude: Sine amplitude para

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android代码-Disco

    scroll animation library for Android Image Gradle compile 'com.minoon:disco:0.1.2' How To Use Disco disco = new Disco(); disco.addScrollView(mRecyclerView); disco.addScrollObserver(mToolbar, disco....

    android 动画基础

    动画效果编程基础--AnimationAndroid 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移...

    详谈Android动画效果translate、scale、alpha、rotate

    Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变...

    RoundButton:带有角,变形和动画的Android Button

    圆形按钮带有角,变形和动画的Android Button内容安装 compile 'com.marozzi.roundbutton:round-button:1.0.7'如何使用添加到...android:text="prenota" app:rb_animation_alpha="false" app:rb_anima

Global site tag (gtag.js) - Google Analytics