<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    TWaver - 專注UI技術

    http://twaver.servasoft.com/
    posts - 171, comments - 191, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    MONO中動畫的導出與播放

    Posted on 2014-10-11 10:21 TWaver 閱讀(3200) 評論(1)  編輯  收藏

    使用過MONO編輯器的朋友都應該了解MONO中支持一些動畫的設置,比如開門,開窗,彈出設備,旋轉場景,鏡頭巡航等。但如何將這些動畫應用到自己的場景中呢?比如我們在編輯器中給機柜定義了動畫,怎樣讓做好的機柜模型加載到自己的場景中并能播放動畫呢?別急,我們來舉個例子給大家講解一下。

    首先我們使用編輯器建一個機柜的模型,這里就不給大家演示了,MONO編輯器的平臺上提供了多種機柜的模型,我們直接下載一個模型導出一份json可以了,這里我們直接拿了MONO中公開的“42U標準機柜”的數據并導出了一份數據格式保存在本地。

    接著可以在自己的場景中將這份數據導入進來,代碼如下:

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

    在這個例子中我們通過在地板上指定幾個點,點擊確認后動態從文件中加載模型數據。加載數據后我們加上了機柜從地板上慢慢升級的動畫。這個動畫在mono中已經封裝了,我們只需調用下面的代碼即可:

    1//play animation
    2mono.AniUtil.playAnimation(hostNode, 'scale:top:1:2000:500');

    導入的模板中保存了動畫的屬性,但是雙擊后并不能播放模板中的動畫。是因為這些動作是加在network上的,我們需要在自己的工程中加上雙擊播放動畫的代碼:

    1network3d.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        }

    加上這段就可以播放雙擊對象的動畫了。

    這里我們讓開門和彈出設備的動畫連續播放,也就是當開門動畫播放完畢后,我們再回調一下彈出設備的動畫,代碼如下:

    1var door = findDatafromChildren(object,101);
    2var server = findDatafromChildren(object,102);
    3var played = object._played || false;
    4console.log(object.__status ,object._played);
    5//check animation of element is playing
    6if(object.__status && object.__status === "playing"return;
    7 
    8var animations = [{method:playEquipment,args:[door]},
    9                  {method:playEquipment,args:[server]}];
    10 
    11function playEquipment(equip, callback){
    12    mono.AniUtil.playAnimation(equip, equip.getClient('animation'), 1000, 0,nullfunction(){
    13        if(callback){
    14            callback.call();
    15        }
    16    });
    17}

    這樣導入模型文件的動畫就做完了,這個小demo在MONO的1.9版本中已經提供了,感興趣的朋友可以到twaver的網站上申請mono最新的下載包。
    最后附上一張Demo的截圖,其中綠色地塊表示正準備創建機柜的區域:


    評論

    # www.elephantec.cn  回復  更多評論   

    2014-10-11 16:24 by 合肥網站建設
    向你學習!

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费一级毛片在线观看| 欧洲亚洲综合一区二区三区| 黄色永久免费网站| 亚洲精品国产高清嫩草影院 | 亚洲av无码不卡久久| 在线A级毛片无码免费真人| 一级中文字幕免费乱码专区 | 久久精品网站免费观看 | 午夜免费福利影院| 两个人看的www免费| 中国china体内裑精亚洲日本| 亚洲人成无码www久久久| 色妞www精品视频免费看| 四虎永久在线免费观看| 国产免费网站看v片在线| 亚洲av中文无码乱人伦在线r▽ | caoporm碰最新免费公开视频| 青青草原精品国产亚洲av| 啊灬啊灬别停啊灬用力啊免费看| 国产99视频精品免费专区| 婷婷国产偷v国产偷v亚洲| 97亚洲熟妇自偷自拍另类图片 | 女人被弄到高潮的免费视频| 国产精品成人啪精品视频免费 | 91香蕉国产线观看免费全集| 成人a毛片视频免费看| 亚洲精品视频在线观看免费| 青青青免费国产在线视频小草| 亚洲精品国产电影午夜| 亚洲国产一级在线观看 | 久久精品免费观看| 亚洲综合亚洲国产尤物| 久久亚洲2019中文字幕| 夫妻免费无码V看片| 一个人免费日韩不卡视频| a在线视频免费观看在线视频三区| 亚洲一区精彩视频| 久久久亚洲欧洲日产国码是AV | 日韩色视频一区二区三区亚洲 | 久久久久免费精品国产小说| 一级特级aaaa毛片免费观看|