egret帧动画

一、使用白鹭官方工具TextureMerger制作帧动画文件:
选择MovieClip进行制作完成后导出得到一个.png和一个.json文件。
这里写图片描述


二、导入使用:
这里写图片描述
白鹭帧动画控制无法是那几个API,不懂得童鞋请看API和代码注释;以下是使用demo:


/**
 * @copyright www.egret.com
 * @author yjtx
 * @desc 帧动画示例。
 *      触摸舞台会重新播放。
 *      播放过程中如果有帧事件,会触发egret.MovieClipEvent
 *      .FRAME_LABEL事件。
 *      在播放结束一次后会触发egret.Event.LOOP_COMPLETE
 *      事件。全部播放完全后,会触发egret.Event.COMPLETE事件
 *      。
 */

class Main extends egret.DisplayObjectContainer {

    constructor() {
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);

    }

    private onAddToStage(event: egret.Event) {
        this.loadAnimation("resource/assets/mc/plain1.png","resource/assets/mc/plain1.json",function(mcData,mcTexture) {
            /*** 本示例关键代码段开始 ***/
            var mcDataFactory = new egret.MovieClipDataFactory(mcData, mcTexture);
            var role: egret.MovieClip = new egret.MovieClip(mcDataFactory.generateMovieClipData("palin1"));

            this.addChild(role);
            role.gotoAndPlay(1, 1);
            role.x = 100;
            role.y = 100;

            role.addEventListener(egret.Event.COMPLETE, function (e: egret.Event): void {
                egret.log("play over!")
            }, this);
            role.addEventListener(egret.Event.LOOP_COMPLETE, function (e: egret.Event): void {
                egret.log("play times:");
            }, this);
            role.addEventListener(egret.MovieClipEvent.FRAME_LABEL, function (e: egret.MovieClipEvent): void {
                egret.log("frameLabel:" + e.frameLabel);
            }, this);

            /*** 本示例关键代码段结束 ***/
        });
    }


    protected loadAnimation(pngUrl:string,jsonUrl:string,callback: Function): void {
        //3.两个文件都加载完才能播放动画
        var self = this;
        var count: number = 0;  
        var check = function () {
            count++;
            if (count == 2) {
                //callback.call(self);
                callback.call(self,_mcData,_mcTexture);
            }
        }
        //2.加载png文件     
        let _mcTexture: egret.Texture;
        var loader = new egret.URLLoader();
        loader.addEventListener(egret.Event.COMPLETE, function loadOver(e) {
            _mcTexture = e.currentTarget.data;
            check();
        }, this);
        loader.dataFormat = egret.URLLoaderDataFormat.TEXTURE;
        loader.load(new egret.URLRequest(pngUrl));

        //1.加载json文件
        let _mcData: any;
        var loader = new egret.URLLoader();
        loader.addEventListener(egret.Event.COMPLETE, function loadOver(e) {
            _mcData = JSON.parse(e.currentTarget.data);
            check();
        }, this);
        loader.dataFormat = egret.URLLoaderDataFormat.TEXT;
        loader.load(new egret.URLRequest(jsonUrl));

    }





}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值