クリエイトウェーブもいまや、すっかりFlash(ActionScript3)がメインになってしまいましたが、独立数年前は、Directorが、メインでした。自分とDirectorの付き合いはDirectorの歴史を振り返るある意味Flashと兄弟のようなソフトですが、やっぱり違う。インターネットが当たり前になる前の、CD-ROM製品が流行っていたころのCD-ROMは、ほとんどがDirectorでつくられていたのです。Directorは、CD-ROMだけでなくブラウザで動かすコンテンツもつくれて当事としては、画期的なソフトでした。ちなみにDirectorコンテンツはブラウザコンテンツとしては、ShockWaveという名前になります。クリエイトウェーブのHPにもあるShockWaveゲームはDirectorでつくるのです。同じAdobe(MacroMedia)ファミリーであるFlashも正式名称?というか最初の頃の名称は、ShockWaveFlashであり、ShockWaveプレーヤーのインストーラーの中身がFlashとShockWave(Director)が一体化していた時期もありました。Adobe自体が、既にDirectorよりFlashに力を入れている面は否めませんが、そんなDirectorも最近バーションが11.5にアップしました。11が出てそんなに経ってない気がするのに、まだまだ元気なようです。昔は、いまのFlashのようにいっぱいいたDirector使いですが、現在も生き残ってるDirector使いは、クリエイトウェーブのように、プログラム(Lingo)中心のクリエイターか、パチンコのアニメを作ってる会社くらいな気がします。パチンコアニメは、Directorで作られてるものが多いのです。アニメ会社のビルの中にオフィッスがあるクリエイトウェーブは、昔からアニメが得意なDirector屋と勘違いされて相談だったり発注が来ることがありますが、ズバリ不得意です。スクリプト(プログラム)を駆使してこそ、クリエイトウェーブらしいコンテンツが生きてきます。どの会社も傾向はあるってことで・・・そんなDirectorですが、日本で販売されてる書籍はDirector9(MX)で止まってしまっています。商品詳細を見るこの本は、未だにバイブルとして重宝してます。Directorのプログラム言語は、Lingoというのですが、Director10からjavaScriptも使えるようになって、今はどっちでも組めるのですが、javaScriptで組むDirectorは書籍がない。ActionScript組んでる時点で、javaScriptの方が近いのですが、長年の慣れと仕事自体がDirectorは、めっきり減ってしまったので、そのままLingoで組んでます。いまのところLingoで問題なしかなとも思う。実際仕事に影響でてないので・・Windows95が出る前の昔は、マルチメディア(死語?)は圧倒的にマッキントッシュが有利であり、フォトショップとかも同じですが、Directorも最初はマック専用ソフトでした。プログラムだけじゃなく、アニメーションやDirectrorの基本的な使い方の書籍も同じで、Director9(MX)で新刊は止まっています。商品詳細を見る古さは否めないけど、Directorの基本は変わってないので、Directorでのアニメ制作やオーサリングの基本を学ぶには最適な本。(いかんせんこれ以降出てないので)昔は、オーサリング&クリエイターの代表的なソフトで、本もそこそこ出ていたのに寂しい限り。Thu今日は、Director11にて作業。Flashとの連携で、いままで知らなかった手法をとりました。例によって、もっと早く知っておけば・・・・ってやつ。Director10(MX2004)において、Flashとの連携は柔軟になり、スプライトに張り付いたSWFのメソッドは直接呼び出せます。arg);}ってActionScriptメソッドが準備されてると、Director上のLingoでsprite(5).test("実験です")を実行すれば、Directorのメッセージウィンドウに「引数は?実験です」とちゃんと表示されます。DirectorからFlashスプライトに命令を送る時は、こうやってました。逆は?Flash側から、Director呼び出すのに、ずっとgetURL("lingo:Directorのムービースクリプト名&引数")ってやり方でやってたんですが、もっと良い方法がありました。getURLだと、Flash単体で動かすと、ブラウザ立ち上がってエラーになるし、引数を渡すにも、そんなに柔軟でもないです。引数送るのに、いちいち文字列に置き換えなきゃいけないし。今日とった手法だと、そんな事もないです。5];を書いてあげます。ルートに「button_mc」ってインスタンス名を付けたムービークリップを配置します。button_mcをクリックした時に、Directorにデータを渡すようにします。(arg1,arg2);};これで下準備終わり。_objに、新たなfromFlashってプロパティがくっついています。カッコで閉じられて、引数が2つ付いてるので、fromFlashはメソッド(関数)扱いになります。fromFlashの呼び出しをDirectorがキャッチして、そのままDirectorのメソッドを実行するのが、今回とった手法です。void)をLingoで書いて上げます。sprite(5)に張り付いているFlashに対してCallbackを宣言です。sprite(5)のFlashのルートのオブジェクト「_obj」を監視して「_obj」の「fromFlash」メソッドが呼ばれたら、Director上の「toDirector」ハンドラを呼び出す・・・という手続きです。最後に「void」を指定しているので、ムービースクリプトの「toDirector」ハンドラを呼び出すという意味になります。ビヘイビア(スプライトスクリプト)上のハンドラを呼び出す時は、「void」の部分が「me」とかになります。beginspriteとかでCallbackを宣言すると失敗します。自分は、フレームスクリプト上で宣言しました。arg2end第2引数に、setCallbackで監視してるFlash上のオブジェクトが返ってきます。続いて、Flash上のオブジェクト上の実行されたメソッドの引数が渡ってきます。数字が少数扱いになってますね。ActionScript2だと、数字はNumber宣言しかないので、Directorでは常にfloat扱いになるんでしょうね。sprite(5)._obj.d.toString()とかで、見れるので、「getURL("lingo:」のタイミングで値を取りにいくでも、間に合ってはいたんですが、やはり使いにくいので、setCallbackが良さそう。いえば、昔MacroMediaから落とした、サンプルに、こっちの手法で処理してるのが、あったような気がする。その時、もっと詰めてれば良かったです・・・・・しくしく。後、FlashでFlash9でパブリッシュしたSWFは、うまくDirectorに取り込めません><Flash8でパブリッシュしたSWFは、問題なく取り込めました。