博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TWaver MONO Design中动画的导出与播放
阅读量:6083 次
发布时间:2019-06-20

本文共 1772 字,大约阅读时间需要 5 分钟。

hot3.png

使用过MONO编辑器的朋友都应该了解MONO中支持一些动画的设置,比如开门,开窗,弹出设备,旋转场景,镜头巡航等。但如何将这些动画应用到自己的场景中呢?比如我们在编辑器中给机柜定义了动画,怎样让做好的机柜模型加载到自己的场景中并能播放动画呢?别急,我们来举个例子给大家讲解一下。

首先我们使用编辑器建一个机柜的模型,这里就不给大家演示了,MONO编辑器的平台上提供了多种机柜的模型,我们直接下载一个模型导出一份json可以了,这里我们直接拿了MONO中公开的“42U标准机柜”的数据并导出了一份数据格式保存在本地。

接着可以在自己的场景中将这份数据导入进来,代码如下:

mono.Toolkits.loadTemplateUrl(network3d.getDataBox(),'./equipment.json');

 

在这个例子中我们通过在地板上指定几个点,点击确认后动态从文件中加载模型数据。加载数据后我们加上了机柜从地板上慢慢升级的动画。这个动画在mono中已经封装了,我们只需调用下面的代码即可:

//play animationmono.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 playingif(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的截图,其中绿色地块表示正准备创建机柜的区域:

转载于:https://my.oschina.net/monolog/blog/404778

你可能感兴趣的文章
centos 安装 nginx-mysql-redis
查看>>
C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
查看>>
sqoop相关整理记录
查看>>
Solr基础教程之Schema.xml(二)
查看>>
给控件添加长按弹出菜单(上下文菜单,又叫contextMenu)
查看>>
傻瓜式 Material Design 风格矢量图标生成器
查看>>
Nodejs创建HTTPS服务器
查看>>
ubuntu12.04 安装sublime text 2及插件。
查看>>
AFNetworking、MKNetworkKit和ASIHTTPRequest比较
查看>>
Impala 表使用 Avro 文件格式(翻译)
查看>>
http中返回错误代码的意思
查看>>
Spring – 开发环境 – 手动配置
查看>>
!==和!=有什么区别(js php)
查看>>
python入门神图
查看>>
我的友情链接
查看>>
[一文一命令]ls命令详解
查看>>
EBS FORM 失效工具栏按钮
查看>>
com.sun.jdi.InvocationException occurred invoking method
查看>>
Windows Server 2008 R2 IIS7 搭建PHP环境
查看>>
任务计划
查看>>