ActionScript と Flash-JavaScript とは、どこが違うか。

 とある目的で、Flashを動画の自動生成フレームワークとして使えないだろうか?という検討を行った。
Flashの動画生成機能やエフェクトを使い、与えられた素材(静止画/動画)から、パターン化された手順で動画を生成できればOKで、パブリッシュやクライアントサイドでの実行等は考えなくてよい。また、動画生成過程で、独自の外部DLLを呼び出して、特殊な画像処理をプラグインしたいというのが要件。

 結論からいうと、上記の思惑は外れた。マニュアルをじっくり読み込んでみたが、Flashの動画生成時に外部DLLを呼び出すのが無理っぽいのだ。(「いやそんなことはない、呼び出せるのだ」という方がいらっしゃったら、是非その方法を教えてほしい。)

 Flashで動画生成時の振る舞いを拡張するには、ActionScriptを使えばよい。ASでは外部ファイルの読み込み等はサポートされている。しかし、外部DLLは呼べないのだ。Flashのそもそもの目的を考えれば当然だ。安全なSandBox内で実行するプログラムとしてswfが存在しているので、安易に外部DLLとリンクできるようにしてしまうと、たちまちセキュリティホールになってしまう。

 実は、最初は Flash-JavaScriptでDLL呼び出しができるという話をどこか聞いていたので、楽勝だと思っていた。マニュアル調べてみると確かに Flash-JavaScriptではDLLを呼び出せるのだが、このスクリプトは、Flashツール自体の動作をカスタマイズするのが目的のフレームワークで、Action-Scriptとは全く動作空間が違うようなのだ。つまり、Flash-JSでは動画を生成するときの動作にフックしてDLLを呼び出すようなことはできない。

 "Flash", "Script", "DLL"というキーワード繋がりで、なんとなくできる気がしていたのがまずかった。あいまいな知識ほど害になるものはないな、と改めて思った次第。

 というわけで、Flashが駄目なので、改めて別のフレームワークを検討中である。