Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var doc = app.activeDocument; //references current document
- doc.activeLayer = doc.layers[0]; //selects the top layer
- doc.activeLayer.visible = false;
- var doc = app.activeDocument;
- var currentLayer = doc.activeLayer;
- for(i=0; i < doc.layers.length; )
- {
- if(doc.layers[i]==currentLayer)
- {
- a=i;
- //alert(a);
- i = doc.layers.length;
- }
- else{ i++; }
- }
- try
- {
- var nextLayer = doc.layers[a+1];
- var check = nextLayer.visible;
- }
- catch(e)
- {
- var nextLayer = doc.layers[0];
- var check = nextLayer.visible;
- }
- doc.activeLayer = nextLayer;
- if (check == false)
- doc.activeLayer.visible = false;
- var doc = app.activeDocument;
- var currentLayer = doc.activeLayer;
- //===========
- var gropp = doc.layerSets.length;
- var docl = doc.layers.length;
- var sublayer = 0;
- //alert(gropp)
- for (i=0; i < gropp;)
- {
- sublayer = sublayer + doc.layerSets[i].layers.length;
- i++;
- }
- //==============
- var a = -1
- var kk = -1
- var aa = -1
- //если активный слой - элемент высшего порядка:
- for(i=0; i<docl;)
- {
- if(doc.layers[i]==currentLayer)
- {
- a=i;
- i = docl;
- }
- else{ i++;}
- }
- //если активный слой - элемент группы:
- if (a<0)
- {
- for (i=0; i<gropp;)
- {
- var subdocl = doc.layerSets[i].layers.length;
- for (k=0; k<subdocl;)
- {
- if(doc.layerSets[i].layers[k]==currentLayer)
- {
- aa = i;
- kk = k;
- k = doc.layerSets[i].layers.length;
- i = gropp-1;
- }
- else { k++; }
- }
- i++;
- }
- }
- //ACTIVATING
- //если активный слой - слой высшего порядка:
- if (kk<0)
- {
- //если активный слой - группа (т.е. нижележ. слой - внутри её):
- for (i=0; i<gropp;)
- {
- if (doc.layerSets[i] == currentLayer)
- {
- var nLayer = doc.layerSets[i].layers[0];
- var check = nLayer.visible;
- doc.activeLayer = nLayer;
- var isGroup = true;
- var isActived = true;
- if (check == false)
- doc.activeLayer.visible = false;
- i = gropp;
- }
- else {i++;}
- }
- //если активный слой - простой слой (будет обрабатываться в try-catch):
- if (isGroup != true)
- {
- for (i=0; i<docl;)
- {
- if (doc.layers[i]==currentLayer)
- {
- numm = i;
- i=docl;
- }
- else {i++;}
- }
- }
- }
- else
- //(если активный слой - подобъект (элемент группы), т.е. известны (неотриц.) aa и kk:
- {
- //если элемент группы - последний в ней (будет обрабатываться в try-catch):
- if (kk == subdocl-1)
- {
- for (i=0; i<docl;)
- {
- if (doc.layers[i] == doc.layerSets[aa])
- {
- numm = i;
- i = docl;
- }
- else {i++;}
- }
- }
- //если не последний в группе, то проще:
- else
- {
- var nLayer = doc.layerSets[aa].layers[kk+1];
- var check = nLayer.visible;
- doc.activeLayer = nLayer;
- var isActived = true;
- if (check == false)
- doc.activeLayer.visible = false;
- }
- }
- //try-catch секция для последних вариантов (самых нижних слоёв):
- try
- {
- //alert ("isActived is " + isActived)
- if (isActived != true)
- {
- var nLayer = doc.layers[numm+1];
- var check = nLayer.visible;
- doc.activeLayer = nLayer;
- if (check == false)
- doc.activeLayer.visible = false;
- }
- }
- catch(e)
- {
- var nLayer = doc.layers[0];
- var check = nLayer.visible;
- doc.activeLayer = nLayer;
- if (check == false)
- doc.activeLayer.visible = false;
- }
- var doc = app.activeDocument;
- var currentLayer = doc.activeLayer;
- var gropp = doc.layerSets.length;
- var docl = doc.layers.length;
- var a = -1
- var kk = -1
- var aa = -1
- //если активный слой - элемент высшего порядка:
- for(i=0; i<docl;)
- {
- if(doc.layers[i]==currentLayer)
- {
- a=i;
- i = docl;
- }
- else{ i++;}
- }
- //если активный слой - элемент группы:
- if (a<0)
- {
- for (i=0; i<gropp;)
- {
- var subdocl = doc.layerSets[i].layers.length;
- for (k=0; k<subdocl;)
- {
- if(doc.layerSets[i].layers[k]==currentLayer)
- {
- aa = i;
- kk = k;
- k = doc.layerSets[i].layers.length;
- //модернизируем скрипт: вносим сразу в этот цикл обработку активизации.
- //если элемент группы - первый в ней (активизируем саму группу - гипероним):
- if (kk==0)
- {
- var pLayer = doc.layerSets[i];
- var check = pLayer.visible;
- doc.activeLayer = pLayer;
- //var isGroup = true;
- var isActived = true;
- if (check == false)
- doc.activeLayer.visible = false;
- }
- //если не первый, то просто слой вверх:
- else
- {
- var pLayer = doc.layerSets[i].layers[kk-1];
- var check = pLayer.visible;
- doc.activeLayer = pLayer;
- var isActived = true;
- if (check == false)
- doc.activeLayer.visible = false;
- }
- i = gropp-1;
- }
- else { k++; }
- }
- i++;
- }
- }
- //если активный слой - высший элемент; нам известно (неотриц) a:
- else
- {
- if (a==0)
- a=docl;
- for (i=0; i<gropp;)
- {
- //если предыдущий слой - последний элемент находящейся выше группы:
- if (doc.layerSets[i] == doc.layers[a-1])
- {
- var subdocl = doc.layerSets[i].layers.length;
- var pLayer = doc.layerSets[i].layers[subdocl-1];
- var check = pLayer.visible;
- doc.activeLayer = pLayer;
- var isActived = true;
- if (check == false)
- doc.activeLayer.visible = false;
- i = gropp;
- }
- else {i++;}
- }
- if (isActived != true)
- {
- var pLayer = doc.layers[a-1];
- var check = pLayer.visible;
- doc.activeLayer = pLayer;
- if (check == false)
- doc.activeLayer.visible = false;
- }
- }
- var currentLayer = activeDocument.activeLayer;
- currentLayer.visible = !currentLayer.visible
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement