as3实现残影拖影效果


上面两张图片是拖影效果,拖出来每个影子叫残影,我暂时给他们这样命名。

制作拖影效果的方法
1,人物每移动一下,制作一张残影,放到人物后面一层。
类似如下代码
function onEnterFrameOrPlayAnim():void{
var fightGhost:FightGhost = new FightGhost(unitBody);//unitBody是人物的图片,bitmap类型
fightGhost.x = roleContianer.x;
addChildAt(fightGhost,getChildIndex(roleContianer));
}
2,制作残影类,注意下面的制作黑色滤镜的方法,如果想要其他颜色的残影,请修改colorMatrixFilter中的第5,10,15位置的参数,分别代表颜色的rgb值。
package 
{
import flame.transitions.Easing;
import flame.transitions.Fade;
import flame.transitions.FrameTransitionManager;
import flame.transitions.Remove;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.filters.ColorMatrixFilter;
import flash.geom.Matrix;

public class FightGhost extends Sprite
{
//帧动画引擎
public var frameMonter:FrameTransitionManager;
public function FightGhost(bm:Bitmap)
{
super();
//建立bitmap放到里面
var bitmap:Bitmap = new Bitmap;
bitmap.bitmapData = bm.bitmapData;
//增加黑色滤镜 将所有像素变成黑色。
var colorFilter:ColorMatrixFilter = new ColorMatrixFilter([0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0]);
filters = [colorFilter];

//设置位置,反转
bitmap.x = bm.x;
bitmap.y = bm.y;
bitmap.scaleX = bm.scaleX;
addChild(bitmap);
frameMonter = new FrameTransitionManager(this);//让影子逐渐消失
frameMonter.addTransition(new Fade(10,Easing.LINEAR,0));
frameMonter.addTransition(new Remove());
frameMonter.start();

}
}
}
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值