Вопросы по теме создания собственного скрипта.

Здесь обсуждаются любые продукты компании СофтЛаб-НСК для телевизионного вещания (Форвард Т, Форвард ТС, Форвард Голкипер, Форвард Рефери, Форвард Офис, Форвард Инжест)

Модераторы: ElenVR, Людмила, PR

Ответить
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Вопросы по теме создания собственного скрипта.

Сообщение Даниленко Сергей »

В этом топике можно задавать вопросы и получать на них ответы по теме
Титровальные скрипты - создание объекта шаг за шагом


Все сообщения, которые не относятся к данной теме, будут удаляться!
eXed
Сообщения: 330
Зарегистрирован: 28 окт 2005 01:08
Откуда: Irkutsk
Контактная информация:

Сообщение eXed »

В скрипте присутствует импорт библиотек:
import LogotypeLib;
в таком случае возможно ли основную часть кода компилить в VS, а из скрипта только делать вызовы?

В каких DLLках находятся объекты?
SLTMTitleCommon.Scripting;
LogotypeLib;
SLTScriptTools;

Хочется подгрузить их в VS, чтобы видеть структуру.
К стати на какой версии Visual Studio ведется работа?
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

в таком случае возможно ли основную часть кода компилить в VS, а из скрипта только делать вызовы?
Вопрос в том, что вы называете основной частью? Если это набор кода, который будет использоваться многократно, то имеет смысл выносить это дело в свои собственные библиотеки. Если же это код, который будет использоваться только в конкретном скрипте, то вряд ли это имеет смысл делать. Например, внутри этой библиотеки невозможно обращаться к элементам, которые используются в скрипте. Вернее возможно, но тогда вам нужно будет передавать их список. А в этом случае у вас получается неуниверсальное решение - в разных титровальных скриптах набор элементов разный.
Мы используем такие библиотеки именно для общего кода. Например, для разбора нотификационного сообщения от программы OnAir. Примерно за секунду до начала следующего ролика в скрипт прилетает сообщение от программы OnAir. В строке содержится куча всяких параметров. Ясно, что писать каждому свой парсер для одной и той же строки ну совсем не правильно. Поэтому сделана отдельная библиотека, которая в частности позволяет парсить нотификацию.

Если вынос кода преследует цель защиты своего изделия от несанкцианированного использования, то существуют другие способы и они будут рассмотрены.
В каких DLLках находятся объекты?
SLTMTitleCommon.Scripting;
LogotypeLib;
SLTScriptTools;
Хочется подгрузить их в VS, чтобы видеть структуру.
SLTMTitleCommon.IScripting.dll
Logotype.dll
SLTScriptTools.dll

Всё здесь:
C:\Program Files\ForwardT Software\FDTitle
К стати на какой версии Visual Studio ведется работа?
VS9 (2008)
AntonChik
Сообщения: 83
Зарегистрирован: 16 фев 2010 15:32
Откуда: г. Красноярск

Сообщение AntonChik »

когда будет продолжение?
Часть 17. Подложка.
Часть 18. Отладка.
Часть 19. Точная информация о длительности задания (GetTaskInfo).
Часть 20. Автоматическое формирование фильтра файлов для титровального элемента "АнимЛого" (Background)
еще подскажите, пожалуйста, не могу понять куда выводится отладочная информация
Debug.Print("error");
?
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Продолжение обязательно будет в самое ближайшее время.
И про отладку обязательно будет раздел.
AntonChik
Сообщения: 83
Зарегистрирован: 16 фев 2010 15:32
Откуда: г. Красноярск

Сообщение AntonChik »

up :)
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Апать у нас на форуме не принято. В следующий раз будем даунить.
Тема продолжена - см. на дату поста:
viewtopic.php?p=17372#17372
AntonChik
Сообщения: 83
Зарегистрирован: 16 фев 2010 15:32
Откуда: г. Красноярск

Сообщение AntonChik »

извините, не заметил. апать больше не буду. спасибо за информацию по отладке.
AntonChik
Сообщения: 83
Зарегистрирован: 16 фев 2010 15:32
Откуда: г. Красноярск

Сообщение AntonChik »

как производить отладку скрипта, если скрипт использует специальные нотификационные сообщения из программы OnAir?
у меня в этом случае DbgView не ловит отладочные сообщения.
AlMaz
Сообщения: 76
Зарегистрирован: 02 июн 2010 12:48
Откуда: Красноярск, Прима-ТВ
Контактная информация:

Сообщение AlMaz »

тут у вас опечатка:
//Поле extra позволяет задать файловую маску
//Пока мы её сформируем наполовину вручную, потом ещё раз вернёмся к этому вопросу.
//Сначала добавим статическую графику
info.extra = "All image files (*.png;*.bmp;*.dib;*.jpg;*.tga)|*.png;*.bmp;*.dib;*.jpg;*.tga"|";";
//добавляем фильтр для анимации - берём непосредственно из самого титровального элемента
//добавляем фильтр для анимации - берём непосредственно из самого титровального элемента
info.extra = info.extra + Background.GetTaskMask() + "|";

[/b]


должно быть или так:
info.extra = "All image files (*.png;*.bmp;*.dib;*.jpg;*.tga)|*.png;*.bmp;*.dib;*.jpg;*.tga|";
или так:
info.extra = "All image files (*.png;*.bmp;*.dib;*.jpg;*.tga)|*.png;*.bmp;*.dib;*.jpg;*.tga"+"|";

Ждем продолжения уроков. С нетерпением =)
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Спасибо, исправил.
Ждем продолжения уроков. С нетерпением =)
Кое-что добавил:
viewtopic.php?p=17373#17373

К сожалению, со временем свободным большие проблемы. Поэтому не всё так быстро, как хотелосб бы. :oops:
makapoh
Сообщения: 17
Зарегистрирован: 11 янв 2014 19:29

Сообщение makapoh »

ArrayList в GetProperties не будет работать без этой строчки в начале:
import System.Collections;
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

А у нас где-то ArrayList в GetProperties упоминался?
Многое не будет работать если не импортировать соответствующие сборки.
makapoh
Сообщения: 17
Зарегистрирован: 11 янв 2014 19:29

Сообщение makapoh »

Даниленко Сергей писал(а):А у нас где-то ArrayList в GetProperties упоминался?
Многое не будет работать если не импортировать соответствующие сборки.
В 14-ой части)

Вопрос по скриптам, бьюсь уже который час)
Нужно чтобы в надпись вставлялся какой-либо текст, висел на одном месте 5 секунд, исчезал на 0.5 секунд и появлялся следующий текст

Пауза в свойствах надписи не действует, время отображения тоже ставится с трудом)
пытался добавить свойство скрипта для этого, тип свойства double, меняю значение на 0.5 - оно сбрасывается на 0, если ставлю например 1 то оно устанавливается нормально)
sleep тоже не нашел)

через код удалось поставить второй надписи время отображения 0.5, но все равно пауза не 0.5 секунд у меня получается)

в общем между окончанием одного титра и показом другого проходит 1.3-1.5 секунд почему-то
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

А у нас где-то ArrayList в GetProperties упоминался?
Многое не будет работать если не импортировать соответствующие сборки
.

В 14-ой части)
Прочитайте, пожалуйста, более внимательно:
Начнём с описания свойства. Функция GetProperties() возвращает массив объектов типа ScriptPropertyInfo. Каждый из объектов содержит описание одного свойства. Сделаем импорт библиотек, позволяющих работать с массивами. В начало нашего скрипта добавим следующую строку:
import System.Collections;
И, кстати, если скачать исходники 14 урока, то там нужная строка импорта присутствует - см. строку 3 кода.
Нужно чтобы в надпись вставлялся какой-либо текст, висел на одном месте 5 секунд, исчезал на 0.5 секунд и появлялся следующий текст
Пауза в свойствах надписи не действует, время отображения тоже ставится с трудом)
пытался добавить свойство скрипта для этого, тип свойства double, меняю значение на 0.5 - оно сбрасывается на 0, если ставлю например 1 то оно устанавливается нормально)
sleep тоже не нашел)
через код удалось поставить второй надписи время отображения 0.5, но все равно пауза не 0.5 секунд у меня получается)
в общем между окончанием одного титра и показом другого проходит 1.3-1.5 секунд почему-то
1)Почему-то в наших скриптах всё работает и устанавливается.
2)Очень трудно отвечать на ваши вопросы не имея исходников вашего же скрипта.
3)Если вы уже взялись решать свою задачу через скрипты, то подход, на мой взгляд должен быть другим. Примерно так:
а)Для показа текста используем пару титровальных элементов "подпись"
б)Вычитываем в память все строки текста, которые нужно показывать
в)Загружаем текст в первый элемент "подпись"
г)Стартуем показ текста, в этот же момент грузим следующую строчку во второй элемент "подпись" (это можно делать, т.к. у вас между показами есть пауза)
д)Получаем сообщение, что первый титровальный элемент закончил свою работу
е)Выдерживаем нужную паузу
ё)Начинаем показ текста из второго элемента подпись и сразу же грузим текст в первый титровальный элемент

и т.д.
Ответить