<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 閱讀(3195) 評論(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 合肥網站建設
    向你學習!

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


    網站導航:
     
    主站蜘蛛池模板: 免费特级黄毛片在线成人观看| 亚洲一区二区三区乱码在线欧洲| 特级淫片国产免费高清视频| 日韩免费电影网站| 亚洲精品V天堂中文字幕| 亚洲天堂男人天堂| 中文字幕在线亚洲精品| 国产免费观看网站| 成视频年人黄网站免费视频| 日本在线免费观看| 免费人成在线观看播放a| 亚洲精品色播一区二区| 亚洲免费闲人蜜桃| 亚洲网站免费观看| 久久精品国产亚洲香蕉| 在线观看亚洲成人| 亚洲国产精品激情在线观看| 在线观看免费国产视频| 一个人免费高清在线观看| 91香蕉在线观看免费高清| 外国成人网在线观看免费视频| 国产情侣久久久久aⅴ免费| 一级白嫩美女毛片免费| 特级一级毛片免费看| 日日摸日日碰夜夜爽亚洲| 亚洲国产精品18久久久久久| 亚洲人成未满十八禁网站| 亚洲人成网网址在线看| 亚洲成a人片在线观看中文app| 99久久精品国产亚洲| 亚洲国产成人久久精品影视| 久久香蕉国产线看观看亚洲片| 亚洲人成无码网站| 亚洲AV永久无码精品成人| 国产成人A人亚洲精品无码| 亚洲精品无码久久久久去q| 亚洲理论电影在线观看| 亚洲国产精品婷婷久久| 亚洲综合久久久久久中文字幕| 亚洲精品不卡视频| ASS亚洲熟妇毛茸茸PICS|