1. 程式人生 > >FairyGUI筆記 :MovieClip(三)

FairyGUI筆記 :MovieClip(三)

編輯器支援建立、編輯和使用序列幀動畫。建立序列幀動畫的方式有:

  1. 使用Adobe Animate CC/Flash等動畫編輯工具製作好動畫,匯出帶plist或eas副檔名的描述檔案以及相關的貼圖(應放置在相同目錄),然後將描述檔案(僅描述檔案,不是貼圖)拖入編輯器即可生成動畫素材。

  2. 點選選單“資源”->”新建動畫”,或者點選主工具欄按鈕,可以建立一個新的空白動畫。然後在動畫編輯介面點選“匯入圖片序列”,匯入多張圖片。

  3. 直接拖入一個GIF檔案到編輯器,GIF會自動轉換為序列幀動畫。

  4. Flash專案支援直接匯入和使用SWF檔案。

無論從何種方式建立的動畫,在編輯器裡,動畫素材都是以一個單一檔案存在(副檔名為jta)。也就是說,無論動畫是從庫裡的圖片檔案建立的,還是從外面導進來的,都不會再有對單個圖片的依賴。例如,如果你是從資源庫裡拖圖片進入動畫編輯器建立動畫的,建立完成後,這些圖片與動畫再沒有任何關係。如果你要設定動畫所在的紋理集,在動畫編輯器裡對動畫進行設定,對那些圖片設定是無效的。

擺動式播放 預設的播放形式是從第一幀播放到最後一幀,然後下個迴圈又從第一幀播放到最後一幀。如果勾選了擺動式播放,則先從第一幀播放到最後一幀,再從最後一幀倒序播放回第一幀,依此迴圈。

  • GMovieClip

動畫我們一般不直接使用new來建立,也很少有需要單獨建立動畫的需求。它一般直接放置在其他元件中作為組成元素。如果確實需要例項化一個動畫,可以使用以下方法:

GMovieClip aMovie = UIPackage.CreateObject("包名","動畫名").asMovieClip;

常用的API有:

aMovie.playing = false; //切換播放和停止狀態
aMovie.frame = 5; //如果動畫處於停止狀態,可以設定停止在第幾幀

對動畫進行迴圈播放的設定,例如從第幾幀播放到第幾幀,迴圈播放多少次等:

aMovie.SetPlaySettings(0, -1, 0, -1);

對動畫播放過程的控制,可以使用PlayState物件:

//返回播放頭部
((MovieClip)aMovie.displayObject).playState.reset();

動畫播放完成可以獲得一個回撥通知:(如果是迴圈播放,則所有迴圈結束後才算播放完成)

//Unity/Cry
aMovie.onPlayEnd.Add(...);
//AS3
aMovie.setPlaySettings(..., callback);
//Egret
aMovie.setPlaySettings(..., callback, this);
//Laya
aMovie.setPlaySettings(..., Handler.create(callback, this));
//Cocos2dx
aMovie->setPlaySettings(..., CC_CALLBACK_0(AClass::onPlayComplete, this));