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

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

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

    TWaver - 專注UI技術(shù)

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

    使用過(guò)MONO編輯器的朋友都應(yīng)該了解MONO中支持一些動(dòng)畫的設(shè)置,比如開門,開窗,彈出設(shè)備,旋轉(zhuǎn)場(chǎng)景,鏡頭巡航等。但如何將這些動(dòng)畫應(yīng)用到自己的場(chǎng)景中呢?比如我們?cè)诰庉嬈髦薪o機(jī)柜定義了動(dòng)畫,怎樣讓做好的機(jī)柜模型加載到自己的場(chǎng)景中并能播放動(dòng)畫呢?別急,我們來(lái)舉個(gè)例子給大家講解一下。

    首先我們使用編輯器建一個(gè)機(jī)柜的模型,這里就不給大家演示了,MONO編輯器的平臺(tái)上提供了多種機(jī)柜的模型,我們直接下載一個(gè)模型導(dǎo)出一份json可以了,這里我們直接拿了MONO中公開的“42U標(biāo)準(zhǔn)機(jī)柜”的數(shù)據(jù)并導(dǎo)出了一份數(shù)據(jù)格式保存在本地。

    接著可以在自己的場(chǎng)景中將這份數(shù)據(jù)導(dǎo)入進(jìn)來(lái),代碼如下:

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

    在這個(gè)例子中我們通過(guò)在地板上指定幾個(gè)點(diǎn),點(diǎn)擊確認(rèn)后動(dòng)態(tài)從文件中加載模型數(shù)據(jù)。加載數(shù)據(jù)后我們加上了機(jī)柜從地板上慢慢升級(jí)的動(dòng)畫。這個(gè)動(dòng)畫在mono中已經(jīng)封裝了,我們只需調(diào)用下面的代碼即可:

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

    導(dǎo)入的模板中保存了動(dòng)畫的屬性,但是雙擊后并不能播放模板中的動(dòng)畫。是因?yàn)檫@些動(dòng)作是加在network上的,我們需要在自己的工程中加上雙擊播放動(dòng)畫的代碼:

    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        }

    加上這段就可以播放雙擊對(duì)象的動(dòng)畫了。

    這里我們讓開門和彈出設(shè)備的動(dòng)畫連續(xù)播放,也就是當(dāng)開門動(dòng)畫播放完畢后,我們?cè)倩卣{(diào)一下彈出設(shè)備的動(dòng)畫,代碼如下:

    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}

    這樣導(dǎo)入模型文件的動(dòng)畫就做完了,這個(gè)小demo在MONO的1.9版本中已經(jīng)提供了,感興趣的朋友可以到twaver的網(wǎng)站上申請(qǐng)mono最新的下載包。
    最后附上一張Demo的截圖,其中綠色地塊表示正準(zhǔn)備創(chuàng)建機(jī)柜的區(qū)域:


    評(píng)論

    # www.elephantec.cn  回復(fù)  更多評(píng)論   

    2014-10-11 16:24 by 合肥網(wǎng)站建設(shè)
    向你學(xué)習(xí)!

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 一级毛片免费毛片毛片| 国内自产拍自a免费毛片| 亚洲色精品vr一区二区三区| 亚洲Av永久无码精品黑人 | 真正全免费视频a毛片| 波多野结衣中文字幕免费视频| 亚洲国产精品成人精品无码区| 无人视频免费观看免费视频 | **实干一级毛片aa免费| 国产成人A人亚洲精品无码| 人人鲁免费播放视频人人香蕉| 日本免费人成视频播放| 亚洲熟妇无码八V在线播放| 久久久久久久免费视频| 亚洲欧洲在线播放| 37pao成人国产永久免费视频 | eeuss草民免费| 亚洲国产天堂久久久久久| 在线观看亚洲免费| 国产成人无码免费视频97| 亚洲国产成人久久综合| 午夜免费不卡毛片完整版| 亚洲最大中文字幕无码网站| 97人伦色伦成人免费视频| 国产精品亚洲精品| 猫咪社区免费资源在线观看| 亚洲一级毛片免观看| 国产桃色在线成免费视频| 亚洲一区电影在线观看| 日韩免费a级毛片无码a∨| 久久亚洲精品国产亚洲老地址| 女人18毛片特级一级免费视频| 亚洲熟女精品中文字幕| 日韩一品在线播放视频一品免费| 亚洲色欲色欲www在线播放| 在线免费观看视频你懂的| 青青青亚洲精品国产| 亚洲成AⅤ人影院在线观看| 国产A∨免费精品视频| 久久精品国产亚洲一区二区| A级毛片高清免费视频在线播放|