在设计动画时,设计者必须经常和数学模型打交道。初学者也许会被“数学模型”这个词吓倒,不过不用太担心,淡入淡出使用的数学模型并不复杂:
(1)透明度值=初始透明度+时间*变化速率;
(2)变化速率=变化量/单位时间周期;
其轨迹图像如图8-13:
图8-13 淡入效果轨迹图像
相应的代码描述为:
var alpha_offset:Number;
var timer_count:Number;
Object.alpha = Object.alpha * ( 1 + timer_count * alpha_offset );
根据本模型,假设变化速率为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,此时对象完全透明不可见。这一过程实现了动画对象由完全显示到完全消失的渐变效果,是为淡出。