CS6からCSSスプライト書き出しができるようになりましたが、普通のスライスと分けて書き出したりしたくないですか?そんな時のためにスライスのカラーを指定しておけば書き出しを分けるようにできないかと思い、このコマンドを書きました。
スライスってカラーが変えられるんですよね。知ってました?
もちろんCS6でなくても使えます。ルールごとに色を決めておけば、色ごとに書き出すことができるので見た目だけでなく実用的かと思います。
スライスが数ページに渡ってある場合でも大丈夫です。コマンドを実行すれば全てのページから同じ色のスライスを見つけ出します。
あとは書き出しダイアログでページ対象を「すべてのページ」にして、「選択したスライスのみ」にチェックをつけて書き出せばOKです。
以下ソース
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) }