你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> Adobe源碼洩漏?3行代碼搞定,Flash動畫無縫導入Android/iOS/cocos2dx(一)

Adobe源碼洩漏?3行代碼搞定,Flash動畫無縫導入Android/iOS/cocos2dx(一)

編輯:IOS開發綜合

項目介紹

項目名稱:FlashAnimationToMobile 源碼。 使用方法點這裡。

這是一個把flash中的關鍵幀動畫(不是序列幀)導出,然後在iOS/Android原生應用中解析並播放的一個插件。除了原生App,它也能夠支持Cocos2dx(3.x)。

對於Flash軟件,則支持Flash CS3及以上版本及最新的Animate CC。

這個庫能夠滿足游戲,App開發中90%的2D動畫需求。
它可以用來做游戲中的人物動畫:走動,攻擊,跳躍,閃避等,以及UI特效,升級,轉場等。
也可以用於App動畫:秀場禮物,用戶升級,活動禮包,等等。

這個庫目前已在3個線上項目(2個游戲,一個App: android+iOS)中使用了。
它最大的特點就是:原生,關鍵幀動畫。

實際效果如下:

flash:

iOS:

android:

cocos2dx:

項目來由

最開始有把flash關鍵幀動畫導出的想法是當初做cocos2dx開發游戲的時候。
當時開發的一個游戲項目,模仿《刀塔傳奇》的動畫樣式和戰斗模式。
了解的朋友應該知道,《刀塔傳奇》裡面有很多英雄,每個英雄都有很多個動作。
一般情況下,這種復雜動畫應該避免使用序列幀動畫(對內存要求高),而應該用更高效的關鍵幀動畫。

而當初立項的時候,項目組的美術人員對flash比較熟悉,希望用flash來做各個英雄的動畫。更能節約時間。
而cocos2dx當時還不能直接導入flash動畫。
於是,作為程序的我,就需要查閱各種資料,想解決方案。於是就有了這個項目。

我們的游戲當初45個英雄,每個英雄9個動作,全部使用flash制作,並用這個庫來播放動畫。同屏20個英雄,無卡頓完美運行。

看下我們游戲制作的flash原圖:

過了一年,我的主要工作從游戲轉移到app。現在是在做秀場項目。
後來大家覺得送禮物的特效不夠炫,希望手機端送禮物時也能夠有網頁版的那種效果。

於是我就產生了把這個cocos2dx的動畫庫,移植到iOS和android中的想法。就是今天介紹的這個項目了。

用這個動畫庫來播放美術人員做出來的flash特效作為秀場禮物動畫。可令禮物豐富多彩,不再單調。

代碼實現及功能范圍

代碼分為兩部分:

1. flash/python腳本
2. 各平台(iOS/Android/cocos2dx)解析庫。
其中flash腳本的部分參考的是這幾篇文章:
應用Flash JavaScript API解析fla文件 jsfl參考文檔1
jsfl參考文檔2 python腳本是為了把json數據(.flajson文件)轉換成二進制數據(.flabin文件),進一步縮小文件體積,同時帶有一定的加密效果。
其中cocos2dx的項目只支持二進制格式,Android和iOS版本支持json和二進制格式。 二進制格式的文件大小要比json格式小10倍左右,加載速度也比json快。

當初在cocos2dx中做程序實現的時候,我是完全把flash的運行機制在cocos2dx中復制了一遍。
其中包含了,元件,層和關鍵幀的概念。
到後面移植App的時候,我的思路發生了變化,我覺得把層的概念淡化,然後在任何一幀,把不同層的圖片同時繪制。這種思路可能更簡單一些。
所以App的代碼實現邏輯,同cocos2dx版本的代碼有一定的區別。

項目中的代碼是最簡單的能夠使用的版本,功能和限制如下:
- 只能用圖片,不能用矢量圖
- 只能使用如下屬性:位置,縮放,旋轉,切變,顏色疊加,透明度變化。
- cocos2dx版本計算content size的部分沒有實現。
- app版本我為不同分辨率手機做了適配,但是沒有編寫計算其size的方法,因為我沒有用到。
- 上述兩點如果有這種需求,則需要自行添加這部分代碼

雖說簡單,但是這個庫已經能夠滿足90%的相關需求了。

如果感興趣,可以通過閱讀資料,為其增加矢量圖,濾鏡,遮罩等功能。這些都是可以實現的。

我在代碼關鍵部分都加了注釋。感興趣的可以圍觀一下。幫忙指出錯誤。

FlashAnimationToMobile 點此進入。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved