Adobe Edge Animateからスタンドアローンで静的なアセットを生成するライブラリを作った

作った mizchi/genanimate https://github.com/mizchi/genanimate

これなに

前職でFlashやってたとき、Adobe FlashでデザイナさんがUI作って、それにコードを注入するというワークフローがとても良いと感じていて、HTML5は高機能化したといっても、そういうことができなくて歯がゆく感じていた。

で、Adobe Edge Animateっていう、(まだ)無料のHTML5オーサリングツールがある。これが結構便利で、これでUIをさっくり作って、Backbone.Viewか何かでラップしてしまえると非常に楽なんじゃないかと思った。

で、作った

使い方

適当にUIを作る

genanimateで静的なHTMLを生成する

genanimate = require 'genanimate'
genanimate.genanimate
  animate_dir: 'assets/animate'
  src: ['test']
  html_gen_path: 'gen'
  images_gen_path: 'gen/images'

test.html等が生成されるので、ブラウザ展開するとこうなる

仕組み

本来ならAdobe Edge Animateは専用のローダーを使ってiframeに展開するんだけど、外部からロジックを注入しようとするとiframeが非常に邪魔だった。しかしAdobe Edge AnimateプロジェクトはJavaScriptで展開することを前提としていて、外部からHTMLのみ展開することができない。

しかし展開後のJSはスタンドアローンで動くようだ。こいつをぶっこぬけばいいのでは。

なのでAdobe Edge Animateの生成するHTMLをphantom.jsで読み込んでしまい、JSによって展開されたHTMLをぶっこ抜く。

非常に邪道な方法なので、もっとちゃんとした方法あるなら教えてください。

Gruntタスク化した

mizchi/grunt-genanimate https://github.com/mizchi/grunt-genanimate

サンプルプロジェクト

mizchi/brunch-genanimate-example https://github.com/mizchi/brunch-genanimate-example

最後に

Adobe Edge Animate 非常に便利なので使おう