Я самоучка, когда дело доходит до сценариев Adobe, поэтому я не знаю, что происходит. < /p>
Это сокращенная версия функции, над которой я работаю; Полная версия будет иметь разные объекты, размещенные в разных группах. Функция должна: < /p>
Принять две переменные, строка цвета цветового индикатора для целей именования, побочное имя, которое является слоем и определяет некоторые утверждения, и целевой DOC, что объекты будут скопированы для. Объекты до конца, а затем в цикле выберет объекты, а функция GroupandMovetolayer выполняется < /li>
< /ol>
Теоретически это работает, но когда я запускаю его, OBJ1And6 постоянно не выбран через это для цикла. Это также происходит в более длинной версии, но всегда с 2 -м объектом, подташенным к собранию, поэтому, например, у меня может быть 6 объектов, но 2 -й объект всегда пропускается. < /P>
function side5and6movement(obj1and6, obj2and7, colorName, sideName, targetDoc){
//declare variables
var temp;
var tempGroup;
var gathered = [];
var boundry = getObject("DO NOT TOUCH2", sideName + "Boundry");
if(boundry == null){
alert("boundry " + sideName + " not found" );
earlyExit = true;
return;
}
gathered[0] = boundry.duplicate();
if(earlyExit){
return;
}
gathered[0].locked = false;
var index = 0;
if(obj1and6 != null){// check for 1/6
temp = obj1and6.duplicate();
doc.selection = null;
tempGroup = doc.groupItems.add();
temp.moveToBeginning(tempGroup);
if(sideName == "Side5"){
boundry = getObject("DO NOT TOUCH2", "Item6-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_6_GS_" + colorName;
} else {
boundry = getObject("DO NOT TOUCH2", "Item1-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_1_GS_" + colorName;
}
tempGroup.locked = false;
tempGroup.visible = true;
tempGroup.selected = true;
gathered.push(tempGroup);
index ++;
}
if(obj2and7 != null){// check for 2/7
temp = obj2and7.duplicate();
doc.selection = null;
tempGroup = doc.groupItems.add();
temp.moveToBeginning(tempGroup);
if(sideName == "Side5"){
boundry = getObject("DO NOT TOUCH2", "Item7-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_7_GS_" + colorName;
} else {
boundry = getObject("DO NOT TOUCH2", "Item2-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_2_GS_" + colorName;
}
tempGroup.locked = false;
tempGroup.visible = true;
tempGroup.selected = true;
gathered.push(tempGroup);
index ++;
}
//move to link page
moveToDoc(gathered, targetDoc, colorName);
app.activeDocument = doc;
// move to new layer
doc.selection = null;
for(var i = 0; i < gathered.length; i++){
gathered.selected = true;
}
temp = groupAndMoveToLayer("etching" + sideName);
if(earlyExit){
return;
}
temp.name = colorName;
return;
}
< /code>
Я попробовал все, что я могу придумать, я даже поместил команду сна на 2 секунды, чтобы убедиться, что это не асинхронно, но я не могу избавиться от этой проблемы. Я могу включить больше кода, проект в настоящее время составляет около 1600 строк и большой беспорядок.
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-function
Скрипт Adobe Express не выбирает один конкретный объект в функции ⇐ Javascript
Форум по Javascript
-
Anonymous
1758727329
Anonymous
Я самоучка, когда дело доходит до сценариев Adobe, поэтому я не знаю, что происходит. < /p>
Это сокращенная версия функции, над которой я работаю; Полная версия будет иметь разные объекты, размещенные в разных группах. Функция должна: < /p>
Принять две переменные, строка цвета цветового индикатора для целей именования, побочное имя, которое является слоем и определяет некоторые утверждения, и целевой DOC, что объекты будут скопированы для. Объекты до конца, а затем в цикле выберет объекты, а функция GroupandMovetolayer выполняется < /li>
< /ol>
Теоретически это работает, но когда я запускаю его, OBJ1And6 постоянно не выбран через это для цикла. Это также происходит в более длинной версии, но всегда с 2 -м объектом, подташенным к собранию, поэтому, например, у меня может быть 6 объектов, но 2 -й объект всегда пропускается. < /P>
function side5and6movement(obj1and6, obj2and7, colorName, sideName, targetDoc){
//declare variables
var temp;
var tempGroup;
var gathered = [];
var boundry = getObject("DO NOT TOUCH2", sideName + "Boundry");
if(boundry == null){
alert("boundry " + sideName + " not found" );
earlyExit = true;
return;
}
gathered[0] = boundry.duplicate();
if(earlyExit){
return;
}
gathered[0].locked = false;
var index = 0;
if(obj1and6 != null){// check for 1/6
temp = obj1and6.duplicate();
doc.selection = null;
tempGroup = doc.groupItems.add();
temp.moveToBeginning(tempGroup);
if(sideName == "Side5"){
boundry = getObject("DO NOT TOUCH2", "Item6-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_6_GS_" + colorName;
} else {
boundry = getObject("DO NOT TOUCH2", "Item1-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_1_GS_" + colorName;
}
tempGroup.locked = false;
tempGroup.visible = true;
tempGroup.selected = true;
gathered.push(tempGroup);
index ++;
}
if(obj2and7 != null){// check for 2/7
temp = obj2and7.duplicate();
doc.selection = null;
tempGroup = doc.groupItems.add();
temp.moveToBeginning(tempGroup);
if(sideName == "Side5"){
boundry = getObject("DO NOT TOUCH2", "Item7-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_7_GS_" + colorName;
} else {
boundry = getObject("DO NOT TOUCH2", "Item2-Boundry");
temp = boundry.duplicate();
temp.locked = false;
temp.moveToBeginning(tempGroup);
tempGroup.name = "obj_2_GS_" + colorName;
}
tempGroup.locked = false;
tempGroup.visible = true;
tempGroup.selected = true;
gathered.push(tempGroup);
index ++;
}
//move to link page
moveToDoc(gathered, targetDoc, colorName);
app.activeDocument = doc;
// move to new layer
doc.selection = null;
for(var i = 0; i < gathered.length; i++){
gathered[i].selected = true;
}
temp = groupAndMoveToLayer("etching" + sideName);
if(earlyExit){
return;
}
temp.name = colorName;
return;
}
< /code>
Я попробовал все, что я могу придумать, я даже поместил команду сна на 2 секунды, чтобы убедиться, что это не асинхронно, но я не могу избавиться от этой проблемы. Я могу включить больше кода, проект в настоящее время составляет около 1600 строк и большой беспорядок.
Подробнее здесь: [url]https://stackoverflow.com/questions/79773909/adobe-express-script-not-selecting-one-particular-object-in-function[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия