Egret社区
本帖最后由 sjavene 于 2018-4-9 19:46 编辑

演示效果:

yans2.gif

原理:
创建一个截取当前场景的截图
然后对截图进行bitmap处理
加上tween。
优点:无需任何图片,特效!适用于任何场景!

使用方法:
[Actionscript3] 纯文本查看 复制代码
ScreenMovies.MovieStart(5)


代码如下:
[Actionscript3] 纯文本查看 复制代码
/**
 * 场景切换特效类
 * by skave
 * (c) copyright 2018 - 2035
 * All Rights Reserved. 
//切换场景的特效
//1.卷帘特效
//2.左右切换移动
//3.直接翻
//4.旋转掉落
//5.随机一种
 */

module ScreenMovies {
    //当前舞台
    export function MovieStart(_txnums) {
        //创建一个截图Bitmap
        var taget = Sys_Gameset.curStage()
        var w = Sys_Gameset.curWidth();
        var h = Sys_Gameset.curHeight()
        //新建一个group
        var loadTxGrp = new eui.Group();
        loadTxGrp.width = w;
        loadTxGrp.height = h;
        taget.addChild(loadTxGrp)
        //循环创建多个截图bitmap 这里num自由设置
        var tx1Number = 40;
        //每个横着的数量
        var Xnumber = 5;
        //高数量自动计算
        var Ynumber = tx1Number / Xnumber;
        for (var i = 0; i < tx1Number; i++) {
            //计算每个的XY及宽高
            var _mcW = w / Xnumber;
            var _mcH = h / Ynumber;
            var _mcX = i % Xnumber * _mcW;
            var _mcY = Math.floor(i / Xnumber) * _mcH;
        
            var renderTexture: egret.RenderTexture = new egret.RenderTexture();
            var mypic = renderTexture.drawToTexture(taget, new egret.Rectangle(_mcX, _mcY, _mcW, _mcH));
            var bmp = new egret.Bitmap;
            bmp.texture = renderTexture;
            bmp.anchorOffsetX = _mcW / 2
            bmp.anchorOffsetY = _mcH / 2
            bmp.x = _mcX + _mcW / 2;
            bmp.y = _mcY + _mcH / 2;
            loadTxGrp.addChild(bmp);
            if (_txnums == 5) {
                _txnums = Math.ceil(Math.random() * 4)
            }
            //开始特效
            switch (_txnums) {
                case 1:
                    var tw = egret.Tween.get(bmp);
                    tw.to({ scaleX: 0, scaleY: 0, alpha: 0, rotation: 359 }, 800, egret.Ease.circIn).call(onComplete, this);
                    break;
                case 2:
                    var my_x = -w
                    if (!(i % 2)) {
                        my_x = w * 2
                    }
                    var tw = egret.Tween.get(bmp);
                    tw.to({ x: my_x, alpha: 0 }, 800, egret.Ease.circIn).call(onComplete, this);
                    break;
                case 3:
                    var tw = egret.Tween.get(bmp);
                    tw.to({ scaleX: 0.2, scaleY: 1, alpha: 0, blurFliter: 0 }, 800, egret.Ease.backInOut).call(onComplete, this);
                    break;
                case 4:
                    var tw = egret.Tween.get(bmp);
                    tw.to({ alpha: 0}, 900, egret.Ease.circIn).call(onComplete, this)
                    break;
                default:
                    var tw = egret.Tween.get(bmp);
                    tw.to({ scaleX: 1, scaleY: 0, alpha: 0 }, 800, egret.Ease.circIn).call(onComplete, this);
            }
        }
        var upNumber = 0;
        function onComplete(evt: Comment) {
            upNumber++
            if (upNumber == tx1Number) {
                taget.removeChild(loadTxGrp)
            }
        }
    }
}



游客,如果您要查看本帖隐藏内容请回复

分享到 :
22 人收藏

232 个回复

倒序浏览
新手小白  登堂入室 | 2018-4-9 19:50:40
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
新手小白  登堂入室 | 2018-4-9 19:50:42
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
yanleiyu  圆转纯熟 | 2018-4-9 19:51:54
看看 看看  
xjn9854262  登堂入室 | 2018-4-9 20:16:35
拿走了 学习下
rfbuffett  登堂入室 | 2018-4-9 20:18:20
顶顶顶顶顶顶顶顶顶
财财  初学乍练 | 2018-4-9 20:28:11
太需要了
wuhaishengxxx  圆转纯熟 | 2018-4-9 22:52:20
炫!酷!
李八疼  圆转纯熟 | 2018-4-10 09:09:38
可以
liu_game  登堂入室 | 2018-4-10 09:30:52
一个很nice的idea,但是这样应该会在创建的时候掉帧吧;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部