仕事でwebを扱っている人は分かると思うんですが、OSやブラウザのバージョンによってレイアウトが崩れたりJavaScriptが動かなかったりというのは非常に悩み所です。これに対する1つの方策は、私の師匠たちのようにとっととそんなものに見切りを付けてFlashでのデザインを選ぶことです。こうすることで、環境依存の問題を切り離すことができます。これはJavaのVirtual Machineと似た発想で、OSやブラウザの違いを吸収するAbstruction LayerとしてのFlashの利用法です。
そんなFlashの最大の制約はデータベースとの連携でした。問題点は2つあって、1つはFlashを動的に生成できないこと。もう1つはFlashはクライアントサイドで動作するため、GET/POSTメソッドによるパラメータの引き渡しがしにくいことでした。過去形で書くのはすでに解決の方法が分かっているからです。まず、動的に生成するという点ですが、これはphpでMingライブラリを用いることで解決です。Mingによって動的にFlashを生成することができます。しかしMingはマルチバイト文字列をハンドリングできませんでした。この問題も解決してくれた方がいて、それがJaMingです。JaMingを用いればデータベースの検索結果の2バイト文字列もFlashに埋め込むことが可能です。パラメータの引き渡しに関してもLoadVariablesメソッドやXMLSocketを用いることでサーバと通信することで解決できるようになりました。
さて、absoluteright.netとしてはこれを利用したいわけですが、まだ問題があります。それはフォントの問題。JaMingのサンプルではフリーの東風明朝(こちみんちょう)を用いてますが、商用フォントと比較するとやはり品質が低いのです。ヒラギノ明朝を利用したいのですが、Linux用はリリースされておらず、Windows用のTrueTypeフォントから何とかならないか調べています。でも、こんなことを考える人は少ないようでgoogleで検索してもあまりひっかかりませんね(^_^;
Virtual Machine:仮想マシン。OSの上に仮想的に動くコンピュータを作り出し、OSの違いをそのコンピュータで吸収してしまおうという考え方。Javaで書かれたプログラムは、あまり修正することなく他のプラットホームでも動作させることが可能です。
Abstruction Layer:抽象層。例えば、OSが文字を表示する仕組みはOSによって全く違います。しかし、HTMLで
タグを用いれば多少の見栄えの違いはあるにせよ、文章が改行されます。つまり具体的に下の層が何をやっているかということは上の層では抽象化されて意識する必要がありません。