TWaver MONO Design中动画的导出与播放
使用过MONO编辑器的朋友都应该了解MONO中支持一些动画的设置,比如开门,开窗,弹出设备,旋转场景,镜头巡航等。但如何将这些动画应用到自己的场景中呢?比如我们在编辑器中给机柜定义了动画,怎样让做好的机柜模型加载到自己的场景中并能播放动画呢?别急,我们来举个例子给大家讲解一下。
首先我们使用编辑器建一个机柜的模型,这里就不给大家演示了,MONO编辑器的平台上提供了多种机柜的模型,我们直接下载一个模型导出一份json可以了,这里我们直接拿了MONO中公开的“42U标准机柜”的数据并导出了一份数据格式保存在本地。
接着可以在自己的场景中将这份数据导入进来,代码如下:
mono.Toolkits.loadTemplateUrl(network3d.getDataBox(),'./equipment.json');

在这个例子中我们通过在地板上指定几个点,点击确认后动态从文件中加载模型数据。加载数据后我们加上了机柜从地板上慢慢升级的动画。这个动画在mono中已经封装了,我们只需调用下面的代码即可:
//play animation
mono.AniUtil.playAnimation(hostNode, 'scale:top:1:2000:500');
导入的模板中保存了动画的属性,但是双击后并不能播放模板中的动画。是因为这些动作是加在network上的,我们需要在自己的工程中加上双击播放动画的代码:
network3d.getRootView().addEventListener('dblclick', handleDoubleClick);
//play animation when double click equipment
var handleDoubleClick = function(e){
var firstClickObject=Utils._findFirstObjectByMouse(network3d,e);
if(firstClickObject.element) {
playAnimation(firstClickObject.element);
}
}
加上这段就可以播放双击对象的动画了。

这里我们让开门和弹出设备的动画连续播放,也就是当开门动画播放完毕后,我们再回调一下弹出设备的动画,代码如下:
var door = findDatafromChildren(object,101);
var server = findDatafromChildren(object,102);
var played = object._played || false;
console.log(object.__status ,object._played);
//check animation of element is playing
if(object.__status && object.__status === "playing") return; var animations = [{method:playEquipment,args:[door]},
{method:playEquipment,args:[server]}]; function playEquipment(equip, callback){
mono.AniUtil.playAnimation(equip, equip.getClient('animation'), 1000, 0, null, function(){
if(callback){
callback.call();
}
});
}
这样导入模型文件的动画就做完了,这个小demo在MONO的1.9版本中已经提供了,感兴趣的朋友可以到twaver的网站上申请mono最新的下载包。
最后附上一张Demo的截图,其中绿色地块表示正准备创建机柜的区域:

TWaver MONO Design中动画的导出与播放的更多相关文章
- 在MONO Design中使用Flex3D
在项目开发组的努力下,HTML5 3D 的开发包变得越来越优秀,越来越健壮:基于HTML5 3D技术的MONO Design建模平台功能也变得越来越强大和完善,这个方便了很多使用我们HTML5 3D的 ...
- TWaver MONO模板库新鲜出炉 精彩纷呈
MONO Design在线3D建模平台网站, www.mono-design.cn,开发组的成员们已经开始紧锣密鼓的对这个平台进行内测.在之前的文章里,我们提到用户可以获得多种多样的TWaver官方模 ...
- 纯css实现Material Design中的水滴动画按钮
前言 大家平时应该经常见到这种特效,很炫酷不是吗 这是谷歌Material Design中最常见的特效了,市面上也有很多现成的js库,用来模拟这一特效.但是往往要引入一大堆js和css,其实在已有的项 ...
- MONO Design创建电信3D机房
前面我们简单介绍了下一分钟创建3D机房,实则mono Design的功能远远不止这些,试想一下,如果我们花上10分钟来创建一个电信机房,那么MONO design又会给我们带来什么样的惊喜呢? 我们从 ...
- css3中动画(transition)和过渡(animation)详析
css3中动画(transition)和过渡(animation)详析
- 把word文档中的所有图片导出
把word文档中的所有图片导出 end
- 【转】c# winform DataGridView导出数据到Excel中,可以导出当前页和全部数据
准备工作就是可以分页的DataGridView,和两个按钮,一个用来导出当前页数据到Excel,一个用来导出全部数据到Excel 没有使用SaveFileDialog,但却可以弹出保存对话框来 先做导 ...
- Silverlight中动画的性能浅析
Silverlight中提供了StoryBoard实现动画,可是StoryBoard的性能实在不敢恭维,特别是动画很大的时候,计算机的CPU和内存的狂增,如此一来性能实在太差,在默认的动画效果中动画实 ...
- JAVA将Excel中的报表导出为图片格式(一)问题背景
如题所示,先抛出一个问题,如何使用JAVA将Excel中的报表导出为图片格式? 首先说一下这个问题的背景,也就是为什么博主会碰到这个问题 随着微信,易信之流大行其道,企业内部的办公交流.绩效考评甚至考 ...
随机推荐
- Guava ---- EventBus事件驱动模型
在软件开发过程中, 难免有信息的共享或者对象间的协作. 怎样让对象间信息共享高效, 而且耦合性低. 这是一个难题. 而耦合性高将带来编码改动牵一发而动全身的连锁效应. Spring的风靡正是由于攻克了 ...
- kernel devel 安装与卸载
1.查看系统内核 uname -r 2.查看已安装kernel-devel uname -a ; rpm -qa kernel\* | sort 3.下载对应的rpm wget xxx/kernel- ...
- JFreeChart生成柱形图(2) (转自 JSP开发技术大全)
JFreeChart生成柱形图(2) (转自 JSP开发技术大全) 14.2 利用JFreeChart生成柱形图14.2.1 利用DefaultCategoryDataset数据集绘制柱形图 通过JF ...
- ODP.NET Managed 相关文章收集
一.Oracle 对.net支持的一些基础知识了解介绍. 1.早年的时候,微软自己做的有 System.Data.OracleClient. 现在已经成了过期类了.性能等都不是很好. 2.Orac ...
- [Swift]Set(集)转换为Array(数组)
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Final关键字解析
final 在 Java 中是一个保留的关键字,可以声明变量.方法.类. 什么是final变量 / 类 / 方法? 任何变量前被 final 修饰就是 final 变量,定义的类前被 final 修饰 ...
- url中传参数为中文的转码与解码解决方法
1.转码 中文为 “你好” var ProjectName = encodeURI(encodeURI("你好"));,如下图所示 跳转页面 window.location.h ...
- map Codeforces Round #Pi (Div. 2) C. Geometric Progression
题目传送门 /* 题意:问选出3个数成等比数列有多少种选法 map:c1记录是第二个数或第三个数的选法,c2表示所有数字出现的次数.别人的代码很短,思维巧妙 */ /***************** ...
- OpenCV2.4.9 + VS2012 + win10 配置
Step1 下载opencv 2.4.9 pack Step2 解压到本地 我解压路径是: C:\OPENCV Step3 添加环境变量: 这里虽然把X64下的VC11(VC11对应VS2012的C+ ...
- 盒子模型,top和margin-top
1. 标准盒子模型: width只是内容的宽度. 元素的总宽度=width + padding*2 +border*2 +margin*2. IE盒子模型: width=内容的宽度 + padding ...