TWaver MONO Design 中动画的导出与播放
来源:互联网 发布:朱文臣 的网络与时 编辑:程序博客网 时间:2024/06/06 04:19
使用过MONO编辑器的朋友都应该了解MONO中支持一些动画的设置,比如开门,开窗,弹出设备,旋转场景,镜头巡航等。但如何将这些动画应用到自己的场景中呢?比如我们在编辑器中给机柜定义了动画,怎样让做好的机柜模型加载到自己的场景中并能播放动画呢?别急,我们来举个例子给大家讲解一下。
首先我们使用编辑器建一个机柜的模型,这里就不给大家演示了,MONO编辑器的平台上提供了多种机柜的模型,我们直接下载一个模型导出一份json可以了,这里我们直接拿了MONO中公开的“42U标准机柜”的数据并导出了一份数据格式保存在本地。
接着可以在自己的场景中将这份数据导入进来,代码如下:
1
mono.Toolkits.loadTemplateUrl(network3d.getDataBox(),
'./equipment.json'
);
在这个例子中我们通过在地板上指定几个点,点击确认后动态从文件中加载模型数据。加载数据后我们加上了机柜从地板上慢慢升级的动画。这个动画在mono中已经封装了,我们只需调用下面的代码即可:
1
//play animation
2
mono.AniUtil.playAnimation(hostNode,
'scale:top:1:2000:500'
);
导入的模板中保存了动画的属性,但是双击后并不能播放模板中的动画。是因为这些动作是加在network上的,我们需要在自己的工程中加上双击播放动画的代码:
1
network3d.getRootView().addEventListener(
'dblclick'
, handleDoubleClick);
2
//play animation when double click equipment
3
var
handleDoubleClick =
function
(e){
4
var
firstClickObject=Utils._findFirstObjectByMouse(network3d,e);
5
if
(firstClickObject.element) {
6
playAnimation(firstClickObject.element);
7
}
8
}
加上这段就可以播放双击对象的动画了。
这里我们让开门和弹出设备的动画连续播放,也就是当开门动画播放完毕后,我们再回调一下弹出设备的动画,代码如下:
1
var
door = findDatafromChildren(object,101);
2
var
server = findDatafromChildren(object,102);
3
var
played = object._played ||
false
;
4
console.log(object.__status ,object._played);
5
//check animation of element is playing
6
if
(object.__status && object.__status ===
"playing"
)
return
;
7
8
var
animations = [{method:playEquipment,args:[door]},
9
{method:playEquipment,args:[server]}];
10
11
function
playEquipment(equip, callback){
12
mono.AniUtil.playAnimation(equip, equip.getClient(
'animation'
), 1000, 0,
null
,
function
(){
13
if
(callback){
14
callback.call();
15
}
16
});
17
}
这样导入模型文件的动画就做完了,这个小demo在MONO的1.9版本中已经提供了,感兴趣的朋友可以到twaver的网站上申请mono最新的下载包。
最后附上一张Demo的截图,其中绿色地块表示正准备创建机柜的区域:
0 0
- TWaver MONO Design 中动画的导出与播放
- Cocos2dx中播放CCB动画与播放CCS动画的区别
- 在项目代码中加载cocostudio导出的动画并循环播放
- Material Design中全新的动画
- android中Animation动画的连续播放与播放完毕后停留在最后的状态
- WinForm中播放声音与Flash动画
- TWaver MONO模板库新鲜出炉 精彩纷呈
- cocos2d-x 播放 cocostudio导出的帧动画
- cocos2d3.3不能播放cocostudio导出的粒子动画
- JAVASCRIPT 控制动画的暂停与播放
- 动画的暂停与继续播放
- cocos动画编辑器导出动画在cocos中播放帧对不齐
- mono touch中WebView与html之间的交互
- Qt 中 实现gif动画的播放
- Qt 中 实现gif动画的播放
- 获取PPT中动画的播放时间
- android 帧动画 xml 中动画无法播放的问题
- UIImageView中播放动画
- sed之大小写转换
- 编译生成的Apk安装到手机提示应用未安装,需给apk签名
- 手动挂载swap分区
- 在Android源码环境下编译系统App使用第三方jar包的方法(备忘)
- Hibernate 对象三种状态 瞬时态,持久态,脱管态 以及 save update saveOrUpdate merge等的使用
- TWaver MONO Design 中动画的导出与播放
- Java中的==和equals区别
- 串口通讯控制器实现之----发送模块
- 你所不知的 CSS ::before 和 ::after 伪元素用法
- *线程详解*
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
- ListView怎么处理大量的加载数据;比如有10万条数据,你在ListView怎么处理?
- 字符串函数---atof()函数详解及实现(完整版)
- storm守护进程启动过程中出现卡死现象的解决办法