レイヤー名にボタンと同じ名前をつけるエクステンション
ボタンを複数作って、アクティブなレイヤーをそのボタンの名前と同じにするというエクステンションを作りました。
ボタンは下記の通りです。
idを変えて複数作っています。
<button id="btn1" class="sampleBtn">サンプル</button>
実際にレイヤー名を変えるスクリプトはこう書きました。
function changeName(colorName) {
app.activeDocument.activeLayer.name = colorName;
}
これをmain.jsで呼び出す(?)形で
window.onload = function (){
const target = document.querySelectorAll('.sampleBtn');//tagetclassグループで指定
//for分で要素数分ループ処理
for (let i = 0; i < target.length; i++) {
//クリックイベントを追加
target[i].addEventListener('click', () => {
var buttonName = event.target.textContent ; //ボタンの名前を取得
csInterface.evalScript('changeName("' + buttonName + '")');
}, false);
}}
実際にこれで思った通りの挙動になっています。
お聞きしたいのは、本当にこれで良いのかどうかです(丸投げですみません)
いろいろ調べながらコードを切り貼りしただけなので、動くには動くのですがこれで本当に大丈夫なのか自信がありません。
コードの書き方でおかしい所があったり、こういうのも必要なんじゃないかとか、何かアドバイス等頂けたらありがたいです。
宜しくお願いいたします。
