Как вставить знак Рубля через скрипт в текст After Effects

Правила форума
Уроки в плейлисте YouTube "Скрипты и выражения в After Effects"
https://www.youtube.com/playlist?list=PL-JXfMS5pUAAi0yrIenAiwMLUEE3t9woE

Автор темы
DenJ
Нуб
Нуб
Сообщения: 9
Зарегистрирован: 23 янв 2018, 12:00

Как вставить знак Рубля через скрипт в текст After Effects

Сообщение #1 DenJ » 08 фев 2018, 10:25

Прошу помощи, казалось бы, такое элементарное действие, нужно через скрипт передать в текстовый слой сумму, допустим 1500р, р должен быть знаком, и тут затык, делаю так

Код: Выделить всё

var so = app.project.item(1).layer("text").property("Text").property("Source Text");
rub = so.value;
rub.resetCharStyle();
rub.font = "ALSRubl"; //шрифт где есть знак рубль
rub.text= "i";// знак рубля
so.setValue( rub);

Во первых скрипт с первого раза не делает знак рубля, печатает просто i, если запускаю второй раз, то переводит, почему?
Во вторых я не могу сделать так so.setValue("1500" + rub), выдает ошибку, если перевожу rub.toString(); то конечно дает, но при этом опять же теряется знак рубль.
Может кто сталкивался с таким и может что подсказать?




Аватара пользователя

aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #2 aeplug » 08 фев 2018, 18:37

DenJ писал(а):Источник цитаты скрипт с первого раза не делает знак рубля

У меня делает. Ты наверное в режиме редактора текста остаешься.
Или снимай выделение.
Ну или попробуй продублировать команду so.setValue(rub);
DenJ писал(а):Источник цитаты не могу сделать так so.setValue("1500" + rub)

property("Source Text").value - это объект типа TextDocument, значит Адоб не предусмотрела возможности объединять их. В документации прямо написано:
NOTE: If the text layer has different font settings for each character, this attribute returns the setting for the first character. Also, if you change the value, it resets all characters in the text layer to the specified setting.

Значит он и мульти-форматирование в скриптах не поддерживает. Ну я так думаю.
:faill:
DenJ писал(а):Источник цитаты если перевожу rub.toString();

Потому что это больше не TextDocument, а обычный текстовый "стринг" без форматирования.
-
ПС создавай символ "Рубля" скриптом и уже копируй руками куда надо.
И лучше добавь туда и создание текста addText. Чтоб уж как можно меньше руками делать.

Отправлено спустя 11 минут 39 секунд:
Вот как-то так у меня получилось )

Код: Выделить всё

app.beginUndoGroup("Rubl");
var myComp = app.project.activeItem;
var newText=myComp.layers.addText("A");
var so = newText.property("Text").property("Source Text");
rub = so.value;
rub.resetCharStyle();
rub.font = "ALSRubl"; //шрифт где есть знак рубль
rub.fontSize  = 100;
rub.text= "i"; // знак рубля
so.setValue(rub);
so.setValue(rub);
app.endUndoGroup();

Действительно в таком случае проблемы с форматированием, шрифт не назначается с первого раза. Ну тут я хз у кого руки кудрявее...
https://www.youtube.com/watch?v=gKpk4-tAzs4
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Автор темы
DenJ
Нуб
Нуб
Сообщения: 9
Зарегистрирован: 23 янв 2018, 12:00

Re: Как вставить знак Рубля через скрипт в текст After Effects

Сообщение #3 DenJ » 08 фев 2018, 18:53

Решил вопрос через экспрешены, привязал знак рубля на отдельном слое к слою с ценой через sourceRectAtTime(); но это конечно не совсем то, что хотелось бы,

Аватара пользователя

aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #4 aeplug » 08 фев 2018, 19:00

Скажи мне плиз чем ты заходишь на этот сайт и как пишешь ответ?
Изображение
Меня интересует откуда у тебя вот это RE берется, я их вроде специально убирал.
И должно быть пусто
Изображение
Ты же не руками это делаешь в заголовке?
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Автор темы
DenJ
Нуб
Нуб
Сообщения: 9
Зарегистрирован: 23 янв 2018, 12:00

Сообщение #5 DenJ » 09 фев 2018, 10:33

Захожу через centBrоwser, и в нем все есть
Еще по предыдущему вопросу, по поиску в интернете нашел такое String.fromCharCode(здесь код символа);
т.е. примерно так so.setValue( "This is a T" + String.fromCharCode(0x68)+ "st");
вот это срабатывает, но код рубля я не нашел(((

Аватара пользователя

aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #6 aeplug » 09 фев 2018, 10:52

DenJ писал(а):Источник цитаты и в нем все есть

т.е. у тебя там прям так и стоит уже в заголовке при ответе текст с RE??
DenJ писал(а):Источник цитаты но код рубля я не нашел

А его и нет, его же придумали года 3-4 назад. Поэтому люди целый шрифт и замутили для него!
А чего ты не копируешь его как я сказал ранее?
aeplug писал(а):Источник цитаты создавай символ "Рубля" скриптом и уже копируй руками куда надо.
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Автор темы
DenJ
Нуб
Нуб
Сообщения: 9
Зарегистрирован: 23 янв 2018, 12:00

Сообщение #7 DenJ » 09 фев 2018, 10:59

aeplug писал(а):Источник цитаты т.е. у тебя там прям так и стоит уже в заголовке при ответе текст с RE??

Стоял, сейчас удалил
aeplug писал(а):Источник цитаты создавай символ "Рубля" скриптом и уже копируй руками куда надо

Хотелось элегантное решение, прочитал с внешнего файла сумму, подставил в скрипте эту сумму и знак рубля к ней в нужный слой и вывел, а так приходится 2 слоя использовать, местами даже 3,"пробел" между цифрами нестандартной ширины,приходится опять же эспрешеннами разбивать сумму на 2, а чем больше экспрешеннов в after, особенно в новых версиях, тем больше у него глюков, бывает уже после рендера их только видишь, и приходится переделывать

Аватара пользователя

aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #8 aeplug » 09 фев 2018, 11:15

DenJ писал(а):Источник цитаты а чем больше экспрешеннов в after, особенно в новых версиях, тем больше у него глюков

О чем ты? Если выражения работают - то они всегда работают. Не замечал тут никаких глюков.
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Автор темы
DenJ
Нуб
Нуб
Сообщения: 9
Зарегистрирован: 23 янв 2018, 12:00

Сообщение #9 DenJ » 09 фев 2018, 11:26

aeplug писал(а):Источник цитаты О чем ты? Если выражения работают - то они всегда работают. Не замечал тут никаких глюков.


Это когда их мало в проекте))), у меня есть такая штука, чекбокс COLOR, я на него завязал глобальную замену всех цветов в проекте через tint, ну просто, галочка включена - эффект 100% и галочка выключена 0%, разные слои и разные композиции и текст, так вот, бывает, что на нее нажимаешь, а не срабатывает, нажимаешь подряд раз 10, цвета переключаются, но тогда я точно знаю, что лучше перезапустить проект, потому что вылезут глюки, неправильные картинки и т.д. В версии СС такого практически нет, но там нет sourceRectAtTime(), а на нем у меня автоформатирование текста завязано, но это надо видеть конечно

Аватара пользователя

aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #10 aeplug » 09 фев 2018, 14:00

DenJ писал(а):Источник цитаты а не срабатывает, нажимаешь подряд раз 10

Первый раз слышу про такое.
Какая точно версия After Effects и ОС?
Надеюсь не 2015? :grin:
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Вернуться в «Вопросы о выражениях и скриптах»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей