ご無沙汰してます。高橋文樹です。
最近縦書きのことで頭がいっぱいなのですが、更新が滞っているのは単にflashスキルの問題であります。
以前はflex_book_coponentというすんばらしいフレームワークを使うとか宣言していたんですが、僕はそもそもFlex Builderを持っていないので、MXMLで書くメリットがよくわかんなかったりするんですね。使える人が使ったら便利だとは思うんですが。
現在はFlash Developpe + Flex SDKという貧弱環境でActionscriptオンリーで作っています。MXMLとActionscriptの関係がHTMLとJavascriptの関係に等しいと考えると、HTMLを一切作らず、JavascriptでDOM要素を生成してappenChildしまくっているというはなはだ非効率的な開発なんですが、僕はもう縦書きが実現できれば二度とflashにさわらなくてもいいと思っているので、このまま突っ走りたいと思います。
色々検討した結果、Flex BOOKという実に似たような名前のフレームワークを発見し、これまたFlex2じゃないとそのままでは動かなかったりするんですが、デモが非常にわかりやすかったので自分で作ることにしました。
で、今回のご報告なんですが、とりあえず、TextLayoutFrameworkのことに関する理解が深まってきたので、そのことについて書きます。
前回、TextLayoutFrameworkのブログを参考にしてページナビゲーションは実装することができていたんですが、このページナビゲーションクラスをそのまま実装することは、「ページめくり」を実現するにあたって無理ということが分かりました。
というのは、このページめくりって、こんな風になってるんですね。
TextLayoutFrameworkというのは、Textflowという主要なオブジェクトを持っており、コレを直訳すれば「テキストの流れ」なわけです。前回のページナビゲーションは、テキストの中に改ページ的な目印をつけて、ステージに配置したSpriteの先頭までテキスト位置をずらすということをやっていたわけです。
しかし、そもそもTextLayoutFrameworkというのは、コンテナを持つことができるので、テキストを各Spriteの中に配置して色々アニメーションを追加するということもできるはずです。
で、現状ではテキストを読み込んで、それをSpriteに割り当てて、それぞれの「ページ」を色々動かせる表示リストを作るところまではいきました。
なので、あとはアニメーションを作るだけです。
マークアップエンジニアに朗報
このTextLayoutFrameworkなんですが、まだβ版ということもあり、どんどん機能が追加されています。この間はAPI変更のお知らせがあったりして、Shitと呟いたりしましたが、β版ってのはそういうもんですよね。
で、この開発チームのブログによると、TextLayoutFrameworkがCSSをサポートしたみたいです。そもそもXMLで読み込むんで、まあ当たり前っちゃ当たり前なんですが、これはマークアップエンジニアにとっては嬉しいお知らせなんじゃないでしょうか。
具体的なコードを紹介しますが、ほんとにCSSです。
.italic { fontStyle:"italic"; color:"0xff"; fontFamily: "Helvetica"; } .center { textAlign:"center"; } #bold { fontWeight:"bold"; }
「そのクオートはなんだ!」と言いたくなりますが、まあ、瑣細なことです。IDとクラスをサポートしただけでも万々歳でしょう。
TextLayoutFrameworkの持つ意味
ところで、TextLayoutFrameworkが意味するところってメディア業界的に大きいような気がします。
僕の勝手な予想では、Adobeがなぜこんなものを提供しだしたかというと、たぶんInDesignとflasを連携させるためではないでしょうか。
要するに、これまでDTPしかやってなかったところがこんなことをできるようにするためです。
- InDesignで印刷物を作成
- それをそのままflashに書き出し
- ワンソース・マルチユースの実現!!
はっきりいって、Adobeの中でInDesignを開発してるチームというのは、自分たちの社内での重要度がどんどん下がっている危機感を感じながら仕事をしているんじゃないでしょうか。当然のことながら、生き残るための努力は惜しまないわけです。事実、InDesign CS4の目玉は「Webへの対応」だったわけですから。TextLayoutFrameworkもその一環としてできたんでしょう。
Webの技術は日進月歩ですが、組版やってた方がWebでそのデザイン力を活かすためには、一番手っ取り早いのがTextLayoutFrameworkだと思います。
一応、W3Cは縦書きへのサポートを表明していますが、たぶん3年以上先の話になると思います。でも、TextLayoutFrameworkなら、とりあえず今ここでWeb上での縦書きを実現することができます。
というわけで、大して役に立つご報告もできませんでしたが、今日もビバ縦書きで寝ることとします。