Adobe Fireworks のコマンドでトリコロールのグラデーションを作る
FireWorks でトリコロールやビコロールの塗りを作る時にどうしてますか?
矩形を並べてそれぞれ単色の塗りを与えてもいいのですが、矩形のレイヤーが邪魔になったりしませんか?
そんなあなたに矩形1つに対して3色分割を簡単に行うコマンドの紹介です。
要はグラデーション処理(Adobe Fireworks で虹色グラデーション - Office L テクニカルノート)を改良して、3色表示になるようにしただけなんですけどw
コマンド化の優れている点、工夫されている点
- 何も選択していない状態なら自動で矩形を1つ生成する
- 矩形、オートシェイプ、パス、テキストなど、おおよそどのオブジェクトに対しても適用できる(きれいかどうかは別)
- 処理後は自由にいじれる
- 実行時に三色を #RRGGBB で指定するので、狙った色に出来る
- 色指定中ならいつでもキャンセルできる
未解決の問題点、未対応な点、検討の余地がある点、未熟な点
- 複数処理は未対応(オブジェクトを複数選択してまとめて実行、はできない)
- 4色や5色にもプログラムで対応可能なはず
- グラデーションハンドルを横向きにする、をやりたい
- 色コードのエラー処理書いてない(めんどいw)
インストール
- 置くべきところにファイルとして置くだけです。(CS3 で Vista の場合は、c:\Users\ユーザ名\AppData\Roaming\Adobe\Fireworks CS3\Commands らへん)
- Adobe Fireworks でコマンドにアクセスキーをつける(CS3なら Flash でもOK) - Office L テクニカルノートも参考にどうぞ
使い方
- 実行するだけです
- 順番に表示されるプロンプトに色を指定してください
- 何も選択してない状態だと、100x100の四角い矩形を自動で生成します
- 適当な矩形やオートシェイプを選択した状態で実行すると、そのオブジェクトに対してグラデーションがかかります。
その他
というわけでソースコードは以下です。
自由にコピペして使ってください。
ソース ( tricolour(&T).jsf )
/* Name: tricolour ( Adobe Fireworks Commands ) URI: http://d.hatena.ne.jp/officel/ Description: グラデーションで3色分割を設定する。 Version: 1.0 Author: Y.Nishimura from Office L Author URI: http://officel.biz/ Usage: 処理したいオブジェクト(矩形、シェイプ、パス、テキスト等々)を選択して実行 : 選択されていない場合は新しい矩形を勝手に作成 : 複数処理には未対応(めんどくさいw Tags: Fireworks,commands */ var dom = fw.getDocumentDOM(); // document object var sel = [].concat(fw.selection); // saved selection var iam = "Tricolour by Office L"; function tricolour(){ if (!dom) return; if (sel.length > 1) return alert('1つずつしか処理できないです。'); if (sel.length <= 0){ // オブジェクトが選択されてなかったら勝手に1個作って処理する dom.addNewRectanglePrimitive({left:100, top:100, right:200, bottom:200}, 0); sel = [].concat(fw.selection); } col1 = prompt('1st Color (#rrggbb)','#ff0000'); if(col1 == null){return;} col2 = prompt('2nd Color (#rrggbb)','#ffffff'); if(col2 == null){return;} col3 = prompt('3rd Color (#rrggbb)','#0000ff'); if(col3 == null){return;} dom.setFill({ category:"fc_Linear", ditherColors:[ "#000000", "#000000" ], gradient:{ name:"cn_Custom", nodes:[ { color:col1, isOpacityNode:false, position:0 }, { color:col1, isOpacityNode:false, position:0.02 }, { color:col1, isOpacityNode:false, position:0.33 }, { color:col2, isOpacityNode:false, position:0.34 }, { color:col2, isOpacityNode:false, position:0.66 }, { color:col3, isOpacityNode:false, position:0.67 }, { color:col3, isOpacityNode:false, position:0.98 }, { color:col3, isOpacityNode:false, position:1.0 } ], opacityNodes:[ { color:"#000000", isOpacityNode:true, position:0 }, { color:"#000000", isOpacityNode:true, position:0.01 }, { color:"#000000", isOpacityNode:true, position:0.99 }, { color:"#000000", isOpacityNode:true, position:1.0 } ] }, }); } try{ tricolour(); }catch(e){ // alert([e, e.lineNumber, e.fileName].join("\n")); };
最後に
自由に改造して使ってください。
もっと上手に書き直してやったぜ、とか、こんなセッティングにしてみたぜ、みたいなのは歓迎です。ぜひいろいろやっちゃってください。
では楽しんでください。