hibitekitou
Photoshopで次のレイヤーを選ぶ時
mac |2014-03-12
Photoshopで現在選択されているレイヤーの上のレイヤーあるいは下のレイヤーを選ぶ時、ショートカットは Option + ] あるいは Opthin + [ です。んが、これって表示されているレイヤーしか選んでくれないのですね。非表示だとそこをスキップしてしまう。
そんじゃ、スクリプトで非表示でも選択されるようにってする場合、
下のレイヤー
function setActiveLayer(layer){
visiState = layer.visible;
activeDocument.activeLayer = layer;
layer.visible = visiState
}
function selectNextLayer( obj ){
curLayer = obj.activeLayer;
if(curLayer.typename == 'LayerSet')
{
layObjs = activeDocument.layerSets.getByName( curLayer.name ).layers;
} else {
layObjs = obj.layers;
}
visiState = true;
for(i=0; i < layObjs.length; i++)
{
if (layObjs[i] == curLayer){
if( ( i + 1) == obj.layers.length )
{
setActiveLayer(layObjs[0])
break;
} else {
setActiveLayer(layObjs[ i + 1])
break;
}
}
}
}
selectNextLayer( activeDocument );
上のレイヤー
function setActiveLayer(layer){
visiState = layer.visible;
activeDocument.activeLayer = layer;
layer.visible = visiState
}
function selectNextLayer( obj ){
curLayer = obj.activeLayer;
visiState = true;
for(i=0; i < obj.layers.length; i++)
{
if (obj.layers[i] == curLayer){
if( ( i - 1) == -1 )
{
setActiveLayer(obj.layers[ obj.layers.length - 1 ])
break;
} else {
setActiveLayer(obj.layers[ i - 1])
break;
}
}
}
}
selectNextLayer( activeDocument );
でいけるんですけどね。問題はレイヤーセットがある時、どうすべきなのか。
なんか、それをケアするのが面倒です。
簡単に書けないかなぁ…
そんじゃ、スクリプトで非表示でも選択されるようにってする場合、
下のレイヤー
function setActiveLayer(layer){
visiState = layer.visible;
activeDocument.activeLayer = layer;
layer.visible = visiState
}
function selectNextLayer( obj ){
curLayer = obj.activeLayer;
if(curLayer.typename == 'LayerSet')
{
layObjs = activeDocument.layerSets.getByName( curLayer.name ).layers;
} else {
layObjs = obj.layers;
}
visiState = true;
for(i=0; i < layObjs.length; i++)
{
if (layObjs[i] == curLayer){
if( ( i + 1) == obj.layers.length )
{
setActiveLayer(layObjs[0])
break;
} else {
setActiveLayer(layObjs[ i + 1])
break;
}
}
}
}
selectNextLayer( activeDocument );
上のレイヤー
function setActiveLayer(layer){
visiState = layer.visible;
activeDocument.activeLayer = layer;
layer.visible = visiState
}
function selectNextLayer( obj ){
curLayer = obj.activeLayer;
visiState = true;
for(i=0; i < obj.layers.length; i++)
{
if (obj.layers[i] == curLayer){
if( ( i - 1) == -1 )
{
setActiveLayer(obj.layers[ obj.layers.length - 1 ])
break;
} else {
setActiveLayer(obj.layers[ i - 1])
break;
}
}
}
}
selectNextLayer( activeDocument );
でいけるんですけどね。問題はレイヤーセットがある時、どうすべきなのか。
なんか、それをケアするのが面倒です。
簡単に書けないかなぁ…
コメント ( 0 )|Trackback ( )
・