code style

2/04/2014

TinySWF - a simple SWF player

最近看到GREE一個開源專案LWF,提供遊戲開發者一套免費的FLASH framework。

剛好之前也寫過類似的專案,現在就共襄盛舉、野人獻曝一下。


https://github.com/jbyu/tinyswf

TinySWF


為了方便讓美術人員製作UI與過場動畫,最好是有一套健全的GUI編輯器讓大家使用,當然為了這個理由而花費龐大的資源與時間來開發一套編輯器,必定是勞民傷財(還很可能吃力不討好、惹人嫌)。所以TinySWF就是為了直接利用Adobe Flash這套編輯器而產生的!

Features
  • Bitmap
  • Motion Tween
  • Text
  • Shape
  • Button
  • MovieClip
  • Mask
  • Sound
  • SWF3 action model
    • play
    • stop
    • gotoAndPlay
    • nextFrame
    • fscommand


TinySWF可以直接解析SWF檔案,不需要轉檔。其繪圖核心目前提供了OpenGL與cocos2d-x的介面,當然大家也可以設計自己的繪圖核心。

TinySWF提供了三個抽象介面讓大家界接:
  • Renderer       繪圖核心
  • Speaker         音效核心
  • FontHandler   字型處理


在開發TinySWF之前,我其實使用過開山鼻祖 gameswf 這套,Scaleform 就是基於它改良而成的。然而SWF實在是個很龐大的架構,如果只是想利用其中幾個功能而已,花費大把時間移植到mobile平台上就顯得不太划算。於是乎,便開始著手寫一個小巧的flash player,開發宗旨就是力求精簡!

雖然TinySWF不比LWF支援unity, html5。不過TinySWF支持向量圖型、遮照,也算是方便的功能。如果想做些複雜的碰撞偵測的話,可以利用向量圖型做polygon test。

TinySWF算是我第一個比較有系統的開源專案,希望大家可以多多給予批評指教~