关于动画。
来源:互联网 发布:mac 鼠标指针小手 编辑:程序博客网 时间:2024/04/28 10:48
1.格子地图
2.坐标转换
3.移动
4.动画的实现就是moveClip对象
http://edn.egret.com/cn/docs/page/596
程序使用MovieClip的方法
egret 的 MovieClip 采用工厂模式,MovieClip 工厂类为:MovieClipDataFactory
。
一个 MovieClip 工厂类对应一个MC资源合集。比如我们在 TextrueMerger 导出的MC资源合集文件为abc.json
和 abc.png
。那么我们就可以在程序中把其解析到一个 MovieClip 工厂类:
var data = RES.getRes("abc.json");
var txtr = RES.getRes("abc.png");
var mcFactory:egret.MovieClipDataFactory = new egret.MovieClipDataFactory( data, txtr );
我们之前提到过一个 MC 资源合集可以包含多个 MovieClip,一个 swf/gif 对应一个 MovieClip 。那么,如果我们把一个名为 mc1.swf 的 swf 文件打包到 MC 资源合集,其 MCID 为 mc1,则在程序中解析该 MovieClip 的方法为:
var mc1:egret.MovieClip = new egret.MovieClip( mcFactory.generateMovieClipData( "mc1" ) );
同样的,如果该 MC 资源合集还包含另外一个名为 mc2.swf 的资源,则可同样解析出该 MovieClip:
var mc2:egret.MovieClip = new egret.MovieClip( mcFactory.generateMovieClipData( "mc2" ) );
如果在MovieClip mc1 中有名为 “start” 的帧标签,我们希望从这里播放 3 次,代码即为:
this.addChild( mc1 );
mc1.gotoAndPlay( "start" ,3);
注意:为了避免可能的内存泄漏问题,MovieClip只有被加到显示列表上之后才能被正确的播放!
在h5项目中的代码为
var jsonData = RES.getRes(name+"_json");
var texture = RES.getRes(name+ "_png");
if(jsonData != null && texture != null){
acFactory = new egret.MovieClipDataFactory(jsonData,texture);
// 缓存动画数据
this.aniFactoryMap.put(resId,aniFactory);
<span style="white-space:pre"></span>/** * 获得动画的factory, factory中有动画描述json和纹理png */ getAniFactory(ani:FoxAni): egret.MovieClipDataFactory { var resId:string = ani.resId; if(!this.isResLoaded(resId)){ console.warn("animation resource has not loaded, " + resId); } var aniFactory = this.aniFactoryMap.get(resId); if(!aniFactory){ var jsonData = RES.getRes(resId + "_json"); var texture = RES.getRes(resId+ "_png"); aniFactory = new egret.MovieClipDataFactory(jsonData,texture); if(ani.aniCache){ // 缓存动画数据 this.aniFactoryMap.put(resId,aniFactory); } } return aniFactory;}/** 移除动画缓存 */removeAniFactory(resId:string):void{ <span style="white-space:pre"></span> <span style="white-space:pre"></span>let value = this.aniFactoryMap.remove(resId); <span style="white-space:pre"></span>value = null;}/** 获取动画数据 */getAniData(ani:FoxAni):egret.MovieClipData{ <span style="white-space:pre"></span>return this.getAniFactory(ani).generateMovieClipData(ani.mcName);}
$mcObject: egret.MovieClip = null;ani.$mcObject.movieClipData = this.getAniData(ani);
this.$mcObject.gotoAndPlay(this.frameName, this.totalPlayCount);
<span style="white-space:pre"></span>public playWithDirection(){// this.Complete(); if(this.isRepeat){ this.action.frameName = this.id + "_" + this.direction; this.action.play(this.id,this.id,-1); }else{ this.action.frameName = this.id + "_" + this.direction; this.action.play(this.id,this.id,1); } }
资源获取 RES.getRes(name+"_json");
are module egret {
/**
* @classdesc 使用 MovieClipDataFactory 类,可以生成 MovieClipData 对象用于创建MovieClip
* @see http://edn.egret.com/cn/docs/page/596 MovieClip序列帧动画
* @version Egret 2.4
* @platform Web,Native
*/
class MovieClipDataFactory extends EventDispatcher {
- 关于动画
- 关于动画
- 关于动画。
- 关于android动画animation
- 关于旋转的动画
- 关于android 开关机动画
- 关于IOS动画
- 关于 iOS 基础动画
- 关于ios帧动画
- 关于android属性动画
- 关于动画杂谈
- 关于简单动画
- 关于unity动画
- 关于抖动动画
- 关于Activity切换动画
- 关于动画的总结
- 关于循环动画
- 关于andriod动画 分类
- [UOJ#244][UER#7A]短路(贪心)
- PS--把美女头像转成漂亮的仿手绘效果
- Gradle 提示中文乱码
- 32位和64位及其内存长度
- 第七周 oj训练5
- 关于动画。
- Swift闭包
- Android Material Design之TextInputLayout
- 程序员工资不是一般的高啊
- Window环境下Python不能卸载问题解决
- 数据库相关知识
- TensorFlow学习笔记(8)----CNN分类CIFAR-10数据集
- VS设置命令行参数
- 手册上的GeoIP扩展详解,按手册整理了一遍