|
|
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で収録されています。残念ながら英語版しかありません。

この機能が、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 で取得することができます。この関数を使えば、どんな画像サイズでも適用できるコマンドを作ることができます。