dropdowns.add({stringList:myStringList, selectedlndex:0});

}

)

}

)

)

}

II Конец диалога

var myRetum = myDialog. show (); if (myRetum == true) {

II Получение значений из диалога

var myComerType = myCornerEffectButtons.selectedButton; var myOffset = myOffsetEditbox.editValue;

var myPattern = myStringList [myPattemDropdown.selectedlndex]; myDialog.destroy();

for(i = 0; i<myObjectList.length; i++) {

myChangeCorners (myObjectList [i], myCornerType', myOffset, myPattern);

}

// Возврат к предыдущим настройкам единиц измерения app.activeDocument.viewPreferences.horizontalMeasurementUnits = myOldXUnits;

app.activeDocument.viewPreferences,verticalMeasurementUnits = myOldYUnits;

}

else{

myDialog,destroy();

}

}

function myChangeCorners(myObject, myCornerType, myOffset, myPattern){ II Функция создает список всех координат опорных точек,

II а также координат касательных к ним (в случае наличия кривых II сегментов) и записывает их в массив. После того как необходимые II координаты вычислены, можно сразу же создать кривые нужной формы II используя свойство entirePath. Это гораздо производительнее, //'чем создавать кривую точка за точкой.

var myPathPoint, myPoint, myPointA, myPointB, myPointC, myAnchor, myX, myY, myXl, myYl, myX2, myY2, myX3, myY3; var myNewXl, myNewYl, myNewX2, myNewY2, myXOffset, myYOffset, myPoint, myPathPoint;

for(var myPathCounter = 0; myPathCounter < myObject.paths.length; myPathCounter ++){ var myPath = myObject.paths[myPathCounter];

// Массив, в который будут заноситься все координаты точек // и их направляющих myPointArray = new Array;

for (var myPathPointCounter = 0; myPathPointCounter < myPathi,pathPoints.length; myPathPointCounter ++) {

// Считывание параметров каждой точки.

// Определяем, должна ли точка подвергаться преобразованиям, if(myPointTest(myPathPointCounter, myPath, myPattern) == false)! // Если точка не принадлежит ни одной из списка myPattern,

// сохраняем положение опорной точки и координаты // обеих касательных

with(myPath.pathPoints[myPathPointCounter]){ myXl = leftDirection[0]; myYl = leftDirection[l]; myX2 = anchor[0]; myY2 = anchor[1]; myX3 = rightDirection[0]; myY3 = rightDirection[l];

}

// Запись параметров текущей точки без изменений myPoint = [[myXl, myYl], [myX2, myY2], [myX3, myY3]];

II Запоминание параметров в массиве с координатами всех точек myPointArray.push(myPoint);

}

else {

II Если точка будет подвергаться трансформациям.

II Основные преобразования (см. рис. 10.1).

II Текущая точка - точка А

myPointA = myPath.pathPoints[myPathPointCounter]; myAnchor = myPointA.anchor; myXl = myAnchor[0]; myYl = myAnchor[1];

II Для корректных преобразований нужно рассматривать II взаимное расположение каждой точки с ее двумя ближайшими II соседями. myPointB - следующая точка на прямой.

II Учитываем особенности работы InDesign с путями.

II Если myPathPoint - последняя точка .прямой, то,

II соответственно, myPointB - начальная точка, if (myPathPointCounter = (myPath.pathPoints.length - 1)){ myPointB = myPath.pathPoints[0];

}

else {

myPointB = myPath.pathPoints[myPathPointCounter + 1];


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