Мой третий скрипт...

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

V.V.Putin

Топикстартер
12 лет на форуме
Сообщения
100
Реакции
0
... а второй я решил не писАть. :)
Этот скрипт является исправленой и всячески улучшеной версией моего первого скрипта

1. Добавлена морда
2. УсугУблен баг, найденый vbatushev-ым

Скрипт уменьшает значение трекинга до тех пор пока не достигнет лимита, который мы устанавливили, или пока значение строчек в параграфе не уменьшиться на одну. Если достигаем лимита - скрипт возвращает первоначальное значение трекингу. Можно применять для верстки ТВ и Обьяв. (надо твердый знак установить на клаву, млин)

Очень легко добавлять/убавлять/менять название("TV", "Частухи") и и минимальное значение трекинга - надо только в эреи добавлять элементы и все.

PHP:
var counter = 0;
var myStep = 1;
var mySelect = true;

var myRadiobutton = ["ТВ", "Частухи"]
var myLimit = ["-55", "-20"]

with (app) {

// Проверяем, что у нас выделено
	if ((selection.length == 1)&&((selection[0].constructor.name == "TextFrame"))) {
	} else {
		alert("Необходимо вытTтелить один текстовый фрейм");
		exit();
	}
	
var myStory = selection[0].parentStory;
//var myStory = selection[0]


// Build dialog
	var myDialog = dialogs.add({name:"Compress Text"});

	with (myDialog) {
		with (dialogColumns.add()){
			with(borderPanels.add()){
			staticTexts.add({staticLabel:"Step :"});
			realEditboxes.add({editValue:myStep, minWidth:25});
				staticTexts.add({staticLabel:" "});
				var myRangeButtons = radiobuttonGroups.add();
				with(myRangeButtons){
					for (i = 0; i < myRadiobutton.length; i++) {
						radiobuttonControls.add({staticLabel:myRadiobutton[i] + " : " + myLimit[i], 									checkedState:true, minWidth:153});
					}
				}
			}

			with (dialogRows.add()){
				staticTexts.add({staticLabel:"Обрабатывать только вытТтеленый фрейм "});
				var mySelectStory = checkboxControls.add({});
				mySelectStory.checkedState = mySelect;
			}
		}
	}


// Display dialog
	myResult = myDialog.show();
	if (!myResult) {
		exit();
	}

// Selection
	if(mySelectStory.checkedState) {
		var myStory = selection[0];
	}else{
		var myStory = selection[0].parentStory;
	}


	i = myRangeButtons.selectedButton;

	for (myCounter = 0; myCounter < myStory.paragraphs.length; myCounter++) {
	   myPara = myStory.paragraphs[myCounter];
		
		if (myPara.lines.length > 1) { //Если число строк в параграфе больше одной
			lnCount = myPara.lines.length; //Количество строк в параграфе		
			counter = counter + 1;
			var saveTrac = myPara.tracking;
			while (myPara.lines.length > (lnCount - 1)) {
				myPara.tracking = myPara.tracking - myStep;
				if (myPara.tracking < myLimit[i] ) {
					myPara.tracking = saveTrac;
					counter = counter - 1
					break;
				}
			}
		}
	}
	alert("counter: " + counter);
}

// Remove the dialog box from memory.
myDialog.destroy();
 
Статус
Закрыто для дальнейших ответов.