Fireworks

コマンド機能の活用法

Fireworks の履歴について

Fireworks には履歴という機能があります。これは、Fireworks上で行った動作をすべて記録する機能で、編集状態を自由に戻すことができます。

履歴パネル

例えば、円を3つ描きます。

円を描く

履歴パレットを見てみると、楕円ツールを3回使用したのが、確認できます。

履歴に作業が残る

このパレットにあるスライドを動かすと、前の状態を戻すことができます。

スライドを操作 前の状態に戻る

円をひとつ描いた状態まで戻って、四角と三角を描きます。履歴パレットを見ると先ほど、楕円ツールが3つあったのが、1つに減り、代わりに矩形ツールと多角形ツールの履歴が記録されます。

作業内容を変える 変更結果

履歴を利用した反復処理

履歴は、行った動作を記録するだけではなく、他にも機能があります。履歴を選択します。複数を選択する場合には、Cntlキーを押します。Macの場合は、Cmndキーです。円ツール、矩形ツール、多角形ツールを選択します。

 履歴の選択

選択した状態で、再実行ボタンを押します。すると、先ほど描いたものと同じように、円、四角形、三角形がまったく同じ位置に描かれます。

再実行をクリック 履歴の内容が複写される

連続した作業を選択しましたが、間を飛ばすこともできます。例えば、四角形を飛ばして円と三角形だけを再実行することもできます。

履歴の選択

単純に複製を作っただけですが、このようなこともできます。円にドロップシャドーを設定し、色をグラデーションに変えます。履歴を見ると、エフェクト、塗りの変更が追加されています。


エフェクトの追加 エフェクトの適用結果

この設定を他の四角形、三角形に反映させるには、円をコピーして、属性をペーストで設定する方法もありますが、履歴を使って設定することができます。

属性のペースト

まず、設定を適用するオブジェクトを選択します。履歴パレットで、エフェクト、塗りの変更を選択し、再実行を押します。

履歴の選択

すると、選択したオブジェクトに、エフェクト、塗りの変更が実行され、円と同じ設定をすることができました。

再実行 エフェクトの再実行

エフェクト、塗りの変更を現在選択しているオブジェクトに対して実行するようになっているため、選択対象を切り替えて、実行してやれば、このように同じ設定を何度でも設定することができます。

再実行 エフェクトの再実行

ここで注意しなければいけないのですが、このように、履歴の間に線が入る場合があります。この場合は、正しく再実行をすることができません。実行しようとするとこのように警告がでます。これは、作業していたオブジェクトが切り替わった場合に線が入ります。再実行をする場合は、同じオブジェクトに対して実行した部分だけを選択しなければなりません。

履歴の選択

選択エラー

履歴をコマンド化

このようにして、いくらでも同じ設定を繰り返し実行することができますが、この履歴を残して、再び使いたい場合にどのようにすればいいでしょうか。そこで、Fireworksでは、履歴を保存することができます。保存した履歴を呼び出してやれば、履歴の作業を再び実行することができます。

履歴をコマンドとして保存

保存するには、先ほどと、同じように履歴を選択し、再実行ボタンではなく、保存ボタンを押します。保存ボタンを押すと名前を聞いてくるので、「UCON」と名前を付け「OK」ボタンを押します。これで、履歴は保存されました。

コマンド保存ダイアログ

保存した履歴は、コマンドメニューで実行することができます。

コマンドメニュー
コマンドをダウンロード

新たに、ファイルを作成し、オブジェクトを作成します。コマンドを実行するオブジェクトを選択して、メニューから「UCON」を実行します。すると、先ほどの履歴の再実行とまったく同じように、エフェクトと塗りの変更が実行されました。

このようにして、履歴をコマンドとして保存してやることで、何度でも作業を繰り返し実行できるようになります。

注意点ですが、コマンドも再実行と同じように履歴の間に線が入らないように注意して下さい。コマンドを作成する場合は、選択対象を切り替えないようにして下さい。この線は、選択対象が切り替わると入るようになっています。

こうして、一連の作業を保存してやれば、このようなコマンドを作ることができます。

編集作業 編集結果
コマンドをダウンロード

コマンドの中身を見る

この保存されたコマンド見てみましょう。Fireworks をインストールしたフォルダに Settings というフォルダがありますが、このフォルダ内にFireworks の設定(書き出しフォーマット、パターン、テクスチャ、そしてコマンド)が保存されています。コマンドファイルは、このフォルダの Commands に保存されています。このコマンドファイルは、jsfという拡張子で、ファイル名がメニューに表示されるコマンド名になっています。また、このコマンドファイルは Mac でも Win でも動かすことができます。

フォルダの表示

先ほど作成した macromedia のコマンドファイルをテキストエディタで開きます。中身は見てのとおり、JavaScript で記述されています。初期設定で入っているコマンドもすべて JavaScript で記述されています。

コマンドファイル

スクリプトの中身は、履歴を対応してみればわかると思いますが、処理1つ1つに対して、関数が用意されています。

履歴とコマンドの関係

関数がどのように実装されているかわかれば、履歴を使わなくても、コマンドを作成することができます。もちろん、JavaScript がわかっていないとだめですが、履歴だけでは、作ることのできないコマンドを作ることが可能です。この関数のマニュアルですが、インストール用のCD-ROMにPDFで収録されています。残念ながら英語版しかありません。

Extending Fireworks

この機能が、JavaScriptの関数ではどれか知りたい場合があります。関数を調べるためにコマンドファイルを毎回作る必要はなく、簡単に見る方法があります。知りたい機能を実行して、履歴パレットでその処理を選択します。

履歴のコピー

保存ボタンの横にある、コピーボタンを押して下さい。これで、履歴がコピーされます。このコピーした履歴は再実行とは違い、他の開いているファイルでも、ペーストして実行することができます。

コマンドの実行

テキストエディタにペーストします。すると、その機能のJavaScript がペーストされます。このように知りたい機能をコピーしてやれば、簡単にJavaScriptの関数を知ることができます。

fw.getDocumentDOM().applyEffects({ category:"\u540D\u79F0\u672A\u8A2D\u5B9A", effects:[ { EffectIsVisible:true, EffectMoaID:"{a7944db8-6ce2-11d1-8c76000502701850}", ShadowAngle:315, ShadowBlur:4, ShadowColor:"#000000a5", ShadowDistance:7, ShadowType:0, category:"\u30B7\u30E3\u30C9\u30A6\u3068\u30B0\u30ED\u30FC", name:"\u30C9\u30ED\u30C3\u30D7\u30B7\u30E3\u30C9\u30A6" } ], name:"\u540D\u79F0\u672A\u8A2D\u5B9A" });

コマンドを修正する

だいたいどのようにコマンドを記述すればいいかわかっていただけたかと思います。ここで、さきほど、ドロップシャドーと塗りの変更をするコマンドを作成しましたが、ものよってドロップシャドーの影のピクセルを切り替えたい場合があります。Fireworks では、Dreamweaver のように フォームを定義することはできませんが、単純な入力ダイアログを呼び出すことができます。 prompt関数を使います。これは、ブラウザのJavaScript でもある関数なので知っている方も多いと思います。Fireworks で値が入力できるダイアログはこの関数だけです。

この関数を使って、ドロップシャドーの影のピクセル数が変更できるコマンドに改良します。

コマンドファイルの編集

ドロップシャドーの影の値をどこで設定されているか調べます。この辺はカンで適当に調べるしかないのですが、ドロップシャドーの影の値を覚えていれば、どのプロパティか簡単にわかります。

このプロパティの部分を変数 shadow に置き換えます。

変更部分の表示

また、コマンドは余計な設定値を入れている場合が多く、引数を省略することができます。ドロップシャドーを単純にかけるだけのコマンドは、省略するとこのようにになります。

コマンドファイルの整形

省略できる引数を調べるには、実際に消してみるしかないのですが、必要な引数を消しても、アラートが表示されるので、Undo で復活させてやればいいだけなので、ひとつひとつ省略できる引数を地道に調べていきます。

変数 shadow にprompt の戻り値を入れるように、エフェクトの設定する前に記述します。

入力機能の追加
サンプルをダウンロード

保存すれば、設定はすぐに反映されます。Fireworks に戻って実行してやると、このように入力ダイアログが表示され、ドロップシャドーの値が変更できるようになりました。

コマンドの実行

選択したオブジェクトによってコマンドの動作を変えたい場合には、 getSelectionBounds()関数を使います。この関数は選択したオブジェクトの矩形の位置を返します。この関数を使えば、オブジェクトの大きさぴったりに配置するコマンドを作ることができます。

選択関数の例
サンプルをダウンロード

画像のサイズは、 doc.width,doc.height で取得することができます。この関数を使えば、どんな画像サイズでも適用できるコマンドを作ることができます。

画像サイズの使用例
サンプルをダウンロード