myLabelsColumn2.staticTexts.add() ;
myLabelsColumn2.staticTexts.add({staticLabel:"Horizontal Scale:"}); myLabelsColumn2.staticTexts.add({staticLabel:"Vertical Scale:"));
myLabelsColumn2.staticTexts.add(); myLabelsColumn2.staticTexts.add();
myLabelsColumn2.staticTexts.add({staticLabel:"Proxy:"}); myControlsColumn2 = myDialog.dialogColumns.add(); myControlsColumn2.staticTexts.add(); myControlsColumn2.staticTexts.add();
myStrokeWeightField = myControlsColumn2.measurementEditboxes.add(); myOpacityField = myControlsColumn2.realEditboxes.add({editValue:0});
myControlsColumn2.staticTexts.add();
myXScaleField = myControlsColumn2.realEditboxes.add({editValue:0}); myYScaleField = myControlsColumn2.realEditboxes.add({editValue:0}); myControlsColumn2.staticTexts.add();
myControlsColumn2.staticTexts.add(); myProxyMenu =
myControlsColumn2.dropdowns.add({stringList:myProxyLis selectedlndex:0}); myResult = myDialog.show(); if(myResult == true){
// Получаем параметры, введенные пользователем myNumberOfRepeats = myRepeatField.editValue; myXOffset = myXOffsetField.editValue; myYOffset = myYOffsetField.editValue; myRotation = myRotationField.editValue; mySkew = mySkewField.editValue; myFillTint = myFillTintField.editValue; myStrokeTint = myStrokeTintField.editValue; myStrokeWeight = myStrokeWeightField.editValue; myOpacity = myOpacityField.editValue; myXScale = myXScaleField.editValue; myYScale = myYScaleField.editValue; myProxy = myProxyMenu.selectedlndex; myDialog.destroy();
with (app.activeDocument.viewPreferences){
var myOldXUnits = horizontalMeasurementUnits; var myOldYUnits = verticalMeasurementUnits;
horizontalMeasurementUnits = MeasurementUnits.points; verticalMeasurementUnits = MeasurementUnits.points;
}
// Собственно функция, выполняющая все преобразования myStepAndRepeat(myObjects, myNumberOfRepeats, myXOffset, myYOffset, myRotation, mySkew, myFillTint, myStrokeTint, myOpacity, myStrokeWeight, myXScale, myYScale, myProxy);
// Восстановление размерностей
app.activeDocument.viewPreferences.horizontalMeasurementUnits = myOldXUnits;
app.activeDocument.viewPreferences.verticalMeasurementUnits = myOldYUnits;
}
else{
myDialog.destroy();
)
}
11 Собственно трансформации
function myStepAndRepeat(myObjects, myNumberOfRepeats, myXOffset, myYOffset, myRotation, mySkew, myFillTint, myStrokeTint, myOpacity, myStrokeWeight, myXScale, myYScale, myProxy)(
// Определяем точку - центр трансформаций switch(myProxy)( case 0:
myProxy = AnchorPoint.topLeftAnchor; break; case 1:
myProxy = AnchorPoint.topCenterAnchor; break; case 2:
myProxy = AnchorPoint.topRightAnchor; break; case 3:
myProxy = AnchorPoint.leftCenterAnchor; break; case 4:
myProxy = AnchorPoint.centerAnchor; break; case 5:
myProxy = AnchorPoint.rightCenterAnchor; break; case 6:
myProxy = AnchorPoint.bottomLeftAnchor; break; case 7:
myProxy = AnchorPoint.bottomCenterAnchor; break; case 8:
myProxy = AnchorPoint.bottomRightAnchor; break;
}
// Делаем необходимое количество копий for (i = 1; i <= myNumberOfRepeats; i++){
// Работаем со всеми выделенными объектами for (j=0; j < myObjects.length; j++)