前にもやった、レイヤーを操作するものの亜種。
レイヤー名を変更する、簡易的なスクリプトを乗せてみた。
やっている事は、プレフィックスに追加するか
または、対象の文字列を削除するといった感じ。
現在選択中のレイヤーを対象にしたかったけど、
どうも、選択状態の取得方法がイマイチ分からなかったので、
ひとまず、対象は全てレイヤー。
エディットテキストとか、ボタンとか、適当に修正して使ってもらえればOK。
現在オレ専用プラグインに搭載中。
役に立つかな??
レイヤー名の頭文字に特定の文字列を追加する。
button allLayerPfxBt “全レイヤーにプレフィックス” width:160
editText allLayerPfxTxt “” width:160 height:16on allLayerPfxBt pressed do
(–テキストはあるか?
if (allLayerPfxTxt.text != “”) then
(
Local layerCount, layer, layerRT;
Local tagLayer = #();
–レイヤーの数
layerCount = (layermanager.count – 1);
–レイヤー内にオブジェクトが無いレイヤーの名前を回収
for i = 1 to layerCount do
(
–レイヤーを取得
layer = layermanager.getlayer i;
–レイヤーの名前を変える
layer.setname (allLayerPfxTxt.text + layer.name);
);–for end
)else(messageBox”テキストが入力されていません”title:”エラー”);–if end
);
);
以下は、レイヤー名から文字列を検索して
対象の文字列を削除する機能。
button allLayerDlPxBt “全レイヤー対象文字を削除” width:160
editText allLayerDlPxTxt “” width:160 height:16on allLayerDlPxBt pressed do
(–テキストはあるか?
if (allLayerDlPxTxt.text != “”) then
(
Local layerCount, layer, layerRT, hitText, myText;
Local tagLayer = #();
–レイヤーの数
layerCount = (layermanager.count – 1);
–レイヤー内にオブジェクトが無いレイヤーの名前を回収
for i = 1 to layerCount do
(
–レイヤーを取得
layer = layermanager.getlayer i;
–レイヤーの名前から見つけて削除
hitText = findString layer.name allLayerDlPxTxt.text;
–文字が見つかったら!(検索結果undefindでなければ)
if hitText != undefined then
(
–文字列を空にはしない
if (layer.name.count != allLayerDlPxTxt.text.count) then
(
–文字数分を空の文字に文字を置き換えます
–<対象のString> <開始文字番号> <置き換える文字数> <置き換える文字>
myText = replace layer.name hitText allLayerDlPxTxt.text.count “”;
layer.setname myText;
);–if end
);–ifend
);–for end
)else(messageBox”テキストが入力されていません”title:”エラー”);–if end);
内容は、さほど難しくないと思うけども・・・。
コメント分を使いまくっている事はツッコまないで。