Adobe Fireworks のコマンドのコードスニペット
トライ&エラーで Fireworks のコマンドをぐりぐり書いているわけですが、日本語の情報が極端に少ない。そもそも Adobe 本家ですら、Extending Fireworks を和訳しようとしてないようなので、仕方ないっちゃ仕方ない。
fw-users.jp でも作って、日本の Fireworks ユーザを集めて、もうちょっと底上げとか図ったほうがいいかも。もう慣れない英語のサイトとかフォーラムとかを四苦八苦しながら探すのはイヤなんだ!w
というわけで、今日はここしばらくやってた(る)コマンドスクリプト( jsf ファイル、要は JavaScript ね)のコードの一部を書き出してみて、これから先、コマンドを使おうとする人たちの役に立てばいいな、とか。
ではさっそく。(一部某外国サイトのおちゃめな和訳っぽくなってるけど単なる遊び心ですw)
1. DOM をコピーして Extending Fireworks のサンプルコピペを楽にしよう
これから Fireworks のコマンドをやろうって人は、Adobe Fireworks Learn & Support は読んでると思うんだけど、これのサンプル( Usage )はそのままコピペしても動かないよね。最初にサンプルをコピペした時は目が点になるよねw
オブジェクトがないから当たり前なんだけど。で、それを簡単に解決するのが次のスクリプト。Aaron Beall - Fireworks Guru - Commandsのコマンドファイルで多用されてるんだけど、これを使えばサンプルをコピペしてきても問題なくなるんだ。もちろん本懐はDOMの保存とかだと思うんだけど。あまり気にせずに最初に書いておけばいいと思うYO!
var dom = fw.getDocumentDOM();
2.処理しない時はスルー推奨
コマンドに慣れてきたり、ExcelやAccessのVBAに慣れてる人とかだと、素直に作ったコマンドがエラーを起こすようになるのを経験するはず。
例えば何も選択してないのに selection に対して無理やり操作をしたとか、単一のオブジェクトを選択してる時はいいけど、複数のオブジェクトを選択していると予期しない動作を引き起こすとか。
それもこれも、Extending Fireworks をちゃんと読まない(もちろん多くの日本人は全部なんて読まないと思うよ)からなわけなんだけど。
というわけでいくつかエラーを回避するためのスクリプトを紹介するよ!
if(!dom) return; // 前述の DOM のコピーがない(ドキュメントを開いていない)ならスルー と、下の例は、実行時に選択している(た)オブジェクトを参照して、以降の処理を実行すべきかどうかを判断する var sel = [].concat(fw.selection); if(!sel.length){ }
3.Try Catch でエラー処理
これも前述で紹介した GURU のコマンドで多用されてる(時々コメントアウトされているけど)技で、jsf は JavaScript なわけで、基本的なことはほとんど同じ。というわけで、エラーキャッチも同じように書けちゃうんだ!
try{ test_func(); }catch(e){ alert([e, e.lineNumber, e.fileName].join("\n")); };
4.コメント
なんでこんな位置にコメントの話だよってつっこみは勘弁してね。0番にしようかとも思ったんだけど、時間の都合で5個しか作れそうにないから、書いてみるだけ。
// この行はコメント /* これも コメントとして 扱われる */
5.お知らせ
やり始めの言語( JavaScript に限らず)の時って、何をどうすればいいのかわからないよね。
そんな時は、なんでもいいから出力したくなるのがトライ&エラー方式を採用する人の共通認識ってゆうか、いいから出せよ。みたいな。
JavaScriptを知らないままでコマンドに手を出そうって猛者はあんまりいないと思うけど、画面上への出力は同じだから、とりあえず何か出力してみるといいYO!
alert(message); confirm(message); prompt(caption, text);
ちょwww草生やしてる場合じゃないんだけど、時間が足りなくてこれだけになっちゃった。
近日中に次のスニペットをまとめるので期待して待っててNE!
。。。慣れない書き方だとやっぱりちょっと無理があるなw