СКОС (skewо), масштаб (scale о)- отдельно по каждой ОСИ (horizontalScale и verticaiScale), выбор центра трансформаций (AnchorPoint, всего 8 положений). Дополнительно внесем возможность задания окантовки, непрозрачности, а также плотности краски для заливки и окантовки - с тем, чтобы получить законченное решение.

Вид диалогового окна нашего скрипта приведен на рис. 4.2, а результат работы кода - на рис. 4.3.

Окно для задания параметров трансформаций

Рис. 4.2. Окно для задания параметров трансформаций

Один из результатов работы скрипта

Рис. 4.3. Один из результатов работы скрипта

! Листинг 4.27. Трансформации объектов

// Задаем параметры опорной точки (центра трансформаций) var myProxyList =

["TopLeft","Top","TopRight","Left”,"Center","Right",'Ъ "BottomLeft","Bottom","BottomRight"];

// Традиционная проверка на корректность входных данных if (арр.selection.length > 0){ myObjects = new Array;

for(i =0; i < app.selection.length; i++){ switch(app.selection[i].constructor.name){ case "Rectangle": case "Polygon": case "GraphicLine": case "Oval": case "TextFrame":

myObjects.push(app.selection[i])

}

}

myDisplayDialog(myObjects);

}

else{

alert("Должен быть выделен хотя бы один объект!");

>

// Отображаем диалоговое окно function myDisplayDialog(myObjects){ myDialog = app.dialogs.add{); myDialog.name = "StepAndRepeat";

// Левая колонка

myLabelsColumnl = myDialog.dialogColumns.add(); myLabelsColumnl.staticTexts.add({staticLabel:"Repeat Count:"});

myLabelsColumnl.staticTexts.add();

myLabelsColumnl.staticTexts.add({staticLabel:"Horizontal Offset:"}); myLabelsColumnl.staticTexts.add({staticLabel:"Vertical Offset:"});

myLabelsColumnl.staticTexts.add();

myLabelsColumnl.staticTexts.add({staticLabel:"Rotation:"}); myLabelsColumnl.staticTexts.add({staticLabel:"Skew:"});

myLabelsColumnl.staticTexts.add();

myLabelsColumnl.staticTexts.add({staticLabel:"Fill Tint:"}); myLabelsColumnl.staticTexts.add({staticLabel:"Stroke Tint:"});

// Правая колонка

myControlsColumnl = myDialog.dialogColumns.add();

myRepeatField = myControlsColumnl.integerEditboxes.add({editValue:2}); myControlsColumnl.staticTexts.add(); myXOffsetField = 'b

myControlsColumnl.measurementEditboxes.add({editValue:0}) ; myYOffsetField =

myControlsColumnl.measurementEditboxes.add({editValue:0});

myControlsColumnl.staticTexts.add();

myRotationField = myControlsColumnl.angleEditboxes.add({editValue:0)); mySkewField = myControlsColumnl.angleEditboxes.add({editValue:0});

myControlsColumnl.staticTexts.add();

myFillTintField = myControlsColumnl.realEditboxes.add({editValue:0}); myStrokeTintField = myControlsColumnl.realEditboxes.add({editValue:0}); myLabelsColumn2 = myDialog.dialogColumns.add(); myLabelsColumn2.staticTexts.add(); myLabelsColumn2.staticTexts.add() ;

myLabelsColumn2.staticTexts.add({staticLabel:"Stroke Weight:"}); myLabelsColumn2.staticTexts.add({staticLabel:"Opacity:"});


⇐ вернуться назад | | далее ⇒