Обводка текстового фрейма

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

ragman

Топикстартер
12 лет на форуме
Сообщения
669
Реакции
0
Создаю текстовый фрейм и применяю толщину обводки 2 pt и др.:
PHP:
var myNewTextFrame = myPage.textFrames.add();
with (myNewTextFrame) {
	strokeWeight = 2;
	geometricBounds = [0, 0, 100, 100];
	cornerEffect = 1667592804;
	cornerRadius = 5;
	strokeTint = 100;
	strokeType = strokeStyles.item(17);
}
В результате текстовый фрейм не имеет обводки. Если проделать все тоже самое с прямоугольником "rectanles.add()" - толщина обводки меняется.
Где я не прав?
 
Ответ: Обводка текстового фрейма

ragman сказал(а):
Создаю текстовый фрейм и применяю толщину обводки 2 pt и др.:
PHP:
var myNewTextFrame = myPage.textFrames.add();
with (myNewTextFrame) {
	strokeWeight = 2;
	geometricBounds = [0, 0, 100, 100];
	cornerEffect = 1667592804;
	cornerRadius = 5;
	strokeTint = 100;
	strokeType = strokeStyles.item(17);
}
В результате текстовый фрейм не имеет обводки. Если проделать все тоже самое с прямоугольником "rectanles.add()" - толщина обводки меняется.
Где я не прав?

Нажми ctrl+H и увидишь, что есть, но линия толщиной 0, ройся в этой стороне!
 
Ответ: Обводка текстового фрейма

Strizh сказал(а):
Нажми ctrl+H и увидишь, что есть, но линия толщиной 0, ройся в этой стороне!
Я наверное не точно выразился: обводка есть и толщиной именно 2 pt. Это проверяется если в скрипт вставить
PHP:
alert (myTextFrame.strokeWeight);
Выведено будет именно 2, но если посмотреть в свойства фрейма на панели инструментов, там Weight вообще не активен.
 
Ответ: Обводка текстового фрейма

Я заметил, только не могу понять почему.
с ректанглом тоже не работает, может глюк, а может еще чего?
щас посмотрим, может чего придумаем!
 
Ответ: Обводка текстового фрейма

Strizh сказал(а):
Я заметил, только не могу понять почему.
с ректанглом тоже не работает, может глюк, а может еще чего?
щас посмотрим, может чего придумаем!
Ты не прав, с "rectangles" как раз работает.
 
Ответ: Обводка текстового фрейма

У меня не работает!

Когда по умолчанке ручками рисуешь прямоугольник, то какая толщина линии получается? у меня 0 п...поэтому и не получается и с ректанглом...ужас какой-то!
 
Ответ: Обводка текстового фрейма

Strizh сказал(а):
У меня не работает!

Когда по умолчанке ручками рисуешь прямоугольник, то какая толщина линии получается? у меня 0 п...поэтому и не получается и с ректанглом...ужас какой-то!
У меня по-умолчанию 1.
А вообще меня смущает фраза из руководства:
The weight (in points) of the stroke applied to the page item.
Что бы это значило?
 
Ответ: Обводка текстового фрейма

Надо в скрипте впрямую задать цвет обводки (предпочтительнее)
или изменить параметры обводки по-умолчанию

ragman сказал(а):
У меня по-умолчанию 1.
А вообще меня смущает фраза из руководства:
Что бы это значило?
А что смущает?
 
Ответ: Обводка текстового фрейма

Добавил следующее:
PHP:
myStrokeColor = swatches.item("Black");
var myNewTextFrame = myPage.textFrames.add();
with (myNewTextFrame) {
	strokeWeight = 2;
	strokeTint = 100;
	strokeType = strokeStyles[0];
	strokeColor = myStrokeColor;
	cornerEffect = 1667592804;
	cornerRadius = 5;
}
Выдает ошибку: "Invalid parameter" именно на строку "strokeColor = myStrokeColor;"
 
Ответ: Обводка текстового фрейма

ragman сказал(а):
Смущает
....applied to the page item
Все равно не понял:
applied - примененный, приложенный
page item - объект полосы (rectangle, oval, textframe... и т.п.)
 
Ответ: Обводка текстового фрейма

to avgays:
приведи, пожалуйста, работоспособный кусок кода
 
Ответ: Обводка текстового фрейма

ПОпробуй так
PHP:
 myStrokeColor = app.activeDocument.swatches.item("Black");
myPage=app.activeDocument.pages[0];
var myNewTextFrame = myPage.textFrames.add();
with (myNewTextFrame) {
geometricBounds = [0, 0, 100, 100];    
strokeWeight = 2;
    strokeTint = 100;
    strokeType = app.activeDocument.strokeStyles.item(17);
    strokeColor = myStrokeColor;
    cornerEffect = 1667592804;
    cornerRadius = 5;
}
 
Ответ: Обводка текстового фрейма

Strizh - ты гений!!!!
 
Ответ: Обводка текстового фрейма

лучше пивом! :-)))
 
Ответ: Обводка текстового фрейма

Strizh сказал(а):
Оно конечно лучше :beer: , но вот вам следующая загадка:
PHP:
var myNewTextFrame = myPage.textFrames.add(undefined, undefined, {insetSpacing:["1m", "1m", "1m", "1m"]});
Смотрим свойства текстового фрейма - отступы 0 мм. :confuse:
 
Ответ: Обводка текстового фрейма

А отступы по одному метру, это не слишком много?
 
Ответ: Обводка текстового фрейма

kaatm сказал(а):
А отступы по одному метру, это не слишком много?
Уважаемый, читайте инструкции.
A measurement override is a string containing a special character: “p” for picas (“1p6”), “pt” for points “18pt”, “m” for millimeters (“2.3m”), or “i” for inches (“1.125i”).
 
Ответ: Обводка текстового фрейма

ragman сказал(а):
Оно конечно лучше :beer: , но вот вам следующая загадка:
PHP:
var myNewTextFrame = myPage.textFrames.add(undefined, undefined, {insetSpacing:["1m", "1m", "1m", "1m"]});
Смотрим свойства текстового фрейма - отступы 0 мм. :confuse:

Очень много ошибков. Во-первых, при создании текстового фрейма никакие дополнительные опции работать не могут. Во-вторых, insetSpacing не является свойством textFrame.
Надо так:
PHP:
with (app) {
	var myPage = activeDocument.pages[0];
	var myBounds = new Array(0, 0, 100, 100)
	var myNewTextFrame = myPage.textFrames.add({});
	with (myNewTextFrame) {
		geometricBounds = myBounds;
		textFramePreferences.insetSpacing = new Array("1mm", "1mm", "1mm","1mm");
	}
}
 
Ответ: Обводка текстового фрейма

To Oleg Butrin
Спасибо, все работает. Только объясните, почему "1mm", а не "1m" (см. #18)?
 
Статус
Закрыто для дальнейших ответов.