Fireworks:同じ色のスライスだけ選択するコマンド

CS6からCSSスプライト書き出しができるようになりましたが、普通のスライスと分けて書き出したりしたくないですか?そんな時のためにスライスのカラーを指定しておけば書き出しを分けるようにできないかと思い、このコマンドを書きました。

スライスってカラーが変えられるんですよね。知ってました?

もちろんCS6でなくても使えます。ルールごとに色を決めておけば、色ごとに書き出すことができるので見た目だけでなく実用的かと思います。

スライスが数ページに渡ってある場合でも大丈夫です。コマンドを実行すれば全てのページから同じ色のスライスを見つけ出します。


あとは書き出しダイアログでページ対象を「すべてのページ」にして、「選択したスライスのみ」にチェックをつけて書き出せばOKです。

samecolor_sliceselect.jsf

以下ソース

try {
	if (fw.documents.length != 0) {
		var dom = fw.getDocumentDOM();
		var sel = fw.selection;

		var len = sel.length;

		if (len == 0) {
			alert("select something.")
		} else {

			if (sel[0].sliceID) {
				var pnum = fw.getDocumentDOM().pagesCount;
				var pno = fw.getDocumentDOM().currentPageNum; //現在のページ
				var _color = sel[0].color;
				var slices;
				//ページを巡回
				for (var h = 0; h < pnum; h++) {
					fw.getDocumentDOM().changeCurrentPage(h);

					var l = fw.getDocumentDOM().layers;
					var len = l.length - 1;
					//Webレイヤーを選択
					fw.getDocumentDOM().currentLayerNum = len;
							fw.getDocumentDOM().selectAllOnLayer(len, false, false);
							 slices = [];
							slices = slices.concat(fw.selection);
			
							var j = slices.length;
			
							if (slices) {
								for (var i = 0; i < j; i++) {
									//同じ色でなければ選択肢ない
									if (_color != slices[i].color) {
										slices[i]=null;
									}
								}
							}
							fw.selection=slices;
				}
				fw.getDocumentDOM().changeCurrentPage(pno); ///ページを戻す
			}


		}

	} else {
		alert("No documents")
	}
} catch (e) {
	alert(e)
}

関連する記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

名前 *