Как создать подслой у определенного слоя

  • Автор темы Автор темы quux
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

quux

Участник
Топикстартер
Сообщения
33
Реакции
0
Добрый день!

Есть задача, создать три слоя и у третьего слоя создать два подслоя. Подскажите как это сделать?

Код:
newlayer = activeDocument.layers.add();
newlayer.name = "layer1";
 
newlayer = activeDocument.layers.add();
newlayer.name = "layer2";
 
newlayer = activeDocument.layers.add();
newlayer.name = "layer3";
 
Ну, видимо, по аналогии:
Код:
newlayer = activeDocument.layers.add();
newlayer.name = "layer1";
newlayer1 = newlayer.layers.add();
 
Спасибо! Все получилось. :)
 
Следующий вопрос: Как у уже существующего слоя создать новый подслой?

Код:
nameLayer = prompt("Введи название объекта","");
layerPar = app.ActiveDocument.layers["Task"];
objectLayer = layerPar .add();
objectLayer.name = nameLayer;

Подскажите, пожалуйста, где ошибка?

(AI CS6)
 
Отладчик ругается на строку:
Код:
layerPar = app.ActiveDocument.layers["Task"];
 
А кто вам сказал, что по именам можно получать доступ к слоям и везде работать будет? В индизайновской ветке уже ругались на эту тему. Нет, IMHO, надо перебирать слои и смотреть имя каждого.
И у нас есть правило - "один вопрос - одна тема"
 
Код:
nameLayer = prompt("Введи название объекта","");
layerPar = app.activeDocument.layers.getByName("1");
objectLayer = layerPar.layers.add();
objectLayer.name = nameLayer;

не ActiveDocument, а activeDocument.
не objectLayer = layerPar .add();, а objectLayer = layerPar.layers.add();

getByName("1"); - найдет первый попавшийся слой с именем "1", причём, если он сам не вложен в другой слой. То есть, если слоёв с именем "1" несколько, то, естественно, придётся перебирать слои и смотреть имя каждого, как и было указано выше.
 
Точно! Я и забыл, что в иллюстраторе так тоже можно.
 
Спасибо :)
 
Статус
Закрыто для дальнейших ответов.