Ясно. Планируете ли вы его тиражировать? Конкуренции не боимся, просто могли бы помочь с защитой.не секрет. под ваше
Титровальные скрипты
Модераторы: Людмила, PR, vd, Даниленко Сергей
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 17
- Зарегистрирован: 17 сен 2009 15:58
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Обращайтесь, поможем, подскажем.когда будет что защищать - можно будет обсудить.
Можно будет и сюда информацию разместить:
http://www.softlab-nsk.com/rus/forward/partners.html
-
- Сообщения: 168
- Зарегистрирован: 16 окт 2005 03:02
- Откуда: г.Туапсе
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Про теги форматирования (будут доступны в титровальных элементах бегущая строка и подпись).
Вот список тегов, которые будут поддерживаться в новой версии ПО:
1. Выравнивание по горизонтали (Alignment):
<AL> - выравнивать строки влево,
<AR> - выравнивать строки вправо,
<AC> - выравнивать строки по центру,
<AJ> - выравнивать оба края строки,
<AD> - установить выравнивание по умолчанию (как установлено в титровальном элементе).
2. Отступы в абзаце по горизонтали (Indent):
<IL n> - отступ строки слева (в пикселах),
n=-1 – установить отступ слева по умолчанию,
<IR n> - отступ строки справа (в пикселах),
n=-1 – установить отступ справа по умолчанию,
<IF n> - отступ красной строки – отступ первой строки вправо (в пикселах),
n=-1 – установить отступ первой строки по умолчанию,
<IH n> - нависание красной строки – отступ первой строки влево (в пикселах),
n=-1 – установить отступ первой строки по умолчанию.
Тэги IF и IH замещают друг друга (сработает только один из них – последний из найденных до конца текущей строки).
3. Разрядка по вертикали (Spacing):
<SB n> - отступ выше абзаца (в пикселах) , n=-1 – установить отступ по умолчанию,
<SA n> - отступ ниже абзаца (в пикселах) , n=-1 – установить отступ по умолчанию,
<SL n> - межстрочный интервал (в процентах),
n=-1 – установить интервал по умолчанию.
4. Выбор стиля (Style):
<ST n> - Далее использовать указанный стиль, n – номер или название стиля,
если n=-1, то далее использовать стиль по умолчанию.
5. Вставка изображения (Picture):
<PC n path> - вставить в строку картинку из файла path, n (в процентах) задает положение картинки в строке по вертикали: 0 - сверху строки, 100 - снизу строки,
50 - по центру строки, -1 – положение по умолчанию (на высоте базовой линии).
6. Фон (Background):
<BK a,r,g,b> - включить заливку фона указанным цветом
(цифры a,r,g,b – десятичные от 0 до 255, a – альфа/непрозрачность),
<BK r,g,b> - включить заливку фона указанным непрозрачным цветом
(цифры r,g,b – десятичные от 0 до 255),
<BK 0xAARRGGBB> - включить заливку фона указанным цветом
(цвет задан в формате HEX, AA – альфа/непрозрачность),
<BK 0xRRGGBB> - включить заливку фона указанным непрозрачным цветом
(цвет задан в формате HEX).
7. Фон страницы (Background):
<PB a,r,g,b > - залить страницу указанным цветом. Цифры как в пункте 6.
8. Подложить изображения(Picture) под текст:<PP hh vv path> - подложить картинку из файла path под текст, hh и vv задают горизонтальное и вертикальное положение картинки.
hh = HL – горизонтально к левому краю
hh = HC – горизонтально по центру
hh = HR – горизонтально к правому краю
hh = HS – горизонтально растянуть/сжать
hh = HT - горизонтально повторить до заполнения
vv = VU – вертикально к верхнему краю
vv = VC – вертикально по центру
vv = VD – вертикально к нижнему краю
vv = VS – вертикально растянуть/сжать
vv = VT - вертикально повторить до заполнения
9. Задать базовый путь к картинкам:
<BP path> - path путь к картинкам.
10. Задать коментарий:
<CC comment> - comment коментарий.
Если в тексте встречается неправильный тэг (с ошибками в формате, например <BK 0>), то он считается обычным текстом (печатается как и любой другой текст).
Вот список тегов, которые будут поддерживаться в новой версии ПО:
1. Выравнивание по горизонтали (Alignment):
<AL> - выравнивать строки влево,
<AR> - выравнивать строки вправо,
<AC> - выравнивать строки по центру,
<AJ> - выравнивать оба края строки,
<AD> - установить выравнивание по умолчанию (как установлено в титровальном элементе).
2. Отступы в абзаце по горизонтали (Indent):
<IL n> - отступ строки слева (в пикселах),
n=-1 – установить отступ слева по умолчанию,
<IR n> - отступ строки справа (в пикселах),
n=-1 – установить отступ справа по умолчанию,
<IF n> - отступ красной строки – отступ первой строки вправо (в пикселах),
n=-1 – установить отступ первой строки по умолчанию,
<IH n> - нависание красной строки – отступ первой строки влево (в пикселах),
n=-1 – установить отступ первой строки по умолчанию.
Тэги IF и IH замещают друг друга (сработает только один из них – последний из найденных до конца текущей строки).
3. Разрядка по вертикали (Spacing):
<SB n> - отступ выше абзаца (в пикселах) , n=-1 – установить отступ по умолчанию,
<SA n> - отступ ниже абзаца (в пикселах) , n=-1 – установить отступ по умолчанию,
<SL n> - межстрочный интервал (в процентах),
n=-1 – установить интервал по умолчанию.
4. Выбор стиля (Style):
<ST n> - Далее использовать указанный стиль, n – номер или название стиля,
если n=-1, то далее использовать стиль по умолчанию.
5. Вставка изображения (Picture):
<PC n path> - вставить в строку картинку из файла path, n (в процентах) задает положение картинки в строке по вертикали: 0 - сверху строки, 100 - снизу строки,
50 - по центру строки, -1 – положение по умолчанию (на высоте базовой линии).
6. Фон (Background):
<BK a,r,g,b> - включить заливку фона указанным цветом
(цифры a,r,g,b – десятичные от 0 до 255, a – альфа/непрозрачность),
<BK r,g,b> - включить заливку фона указанным непрозрачным цветом
(цифры r,g,b – десятичные от 0 до 255),
<BK 0xAARRGGBB> - включить заливку фона указанным цветом
(цвет задан в формате HEX, AA – альфа/непрозрачность),
<BK 0xRRGGBB> - включить заливку фона указанным непрозрачным цветом
(цвет задан в формате HEX).
7. Фон страницы (Background):
<PB a,r,g,b > - залить страницу указанным цветом. Цифры как в пункте 6.
8. Подложить изображения(Picture) под текст:<PP hh vv path> - подложить картинку из файла path под текст, hh и vv задают горизонтальное и вертикальное положение картинки.
hh = HL – горизонтально к левому краю
hh = HC – горизонтально по центру
hh = HR – горизонтально к правому краю
hh = HS – горизонтально растянуть/сжать
hh = HT - горизонтально повторить до заполнения
vv = VU – вертикально к верхнему краю
vv = VC – вертикально по центру
vv = VD – вертикально к нижнему краю
vv = VS – вертикально растянуть/сжать
vv = VT - вертикально повторить до заполнения
9. Задать базовый путь к картинкам:
<BP path> - path путь к картинкам.
10. Задать коментарий:
<CC comment> - comment коментарий.
Если в тексте встречается неправильный тэг (с ошибками в формате, например <BK 0>), то он считается обычным текстом (печатается как и любой другой текст).
-
- Сообщения: 168
- Зарегистрирован: 16 окт 2005 03:02
- Откуда: г.Туапсе
-
- Сообщения: 1
- Зарегистрирован: 03 мар 2010 13:03
Вот и вышла новая версия TitleDesigner, однако вся документация по использованию скриптов исчерпывается сообщениями этой темы.
Экспериментировал с примером Program Files\ForwardT Software\FDTitle\TitleScripting\CrawlPhoneStopSpace.SLTitleProj
Возник ряд вопросов, основной из которых какова связь между проектом и скриптом?
1. Как (можно ли?) использовать функции класса Script?
нижеприведенный код должен по идее останавливать бегучку, но этого не происходит:
class Script extends SLTMTitleCommon.Scripting.ScriptBase {...}
var crawl = new Script(titleRoot);
crawl.Abort(5) //<-- функция выполняется но строка так и бежит //crawl.Stop тоже ничего не меняет
Напишите пример кода как запускать/останавливать титр
2. Параметры atStop: double, fadeDuration: double, time: double это количество секунд?
3. Как получить доступ (прочитать) файл задания (т.е. для бегучки ее содержимое)? В т.ч. при его смене в OnAir?
4. Как узнать какое объявление показывается в настоящий момент (показалось, предстоит показать)?
Судя по содержимому Debug в этом примере из функций класса Script выполняются только init и затем несколько раз OnStatusChanged. В общем совершенно непонятна логика взаимодействия скрипта с проектом.
Экспериментировал с примером Program Files\ForwardT Software\FDTitle\TitleScripting\CrawlPhoneStopSpace.SLTitleProj
Возник ряд вопросов, основной из которых какова связь между проектом и скриптом?
1. Как (можно ли?) использовать функции класса Script?
нижеприведенный код должен по идее останавливать бегучку, но этого не происходит:
class Script extends SLTMTitleCommon.Scripting.ScriptBase {...}
var crawl = new Script(titleRoot);
crawl.Abort(5) //<-- функция выполняется но строка так и бежит //crawl.Stop тоже ничего не меняет
Напишите пример кода как запускать/останавливать титр
2. Параметры atStop: double, fadeDuration: double, time: double это количество секунд?
3. Как получить доступ (прочитать) файл задания (т.е. для бегучки ее содержимое)? В т.ч. при его смене в OnAir?
4. Как узнать какое объявление показывается в настоящий момент (показалось, предстоит показать)?
Судя по содержимому Debug в этом примере из функций класса Script выполняются только init и затем несколько раз OnStatusChanged. В общем совершенно непонятна логика взаимодействия скрипта с проектом.
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
Сначала небольшая теория, потом ответы на конкретные вопросы.
Основные идеи "титровальных скриптов" следующие:
1.Каждый титровальный скрипт - это небольшая программа для управления титровальными элементами.
2.Каждый скрипт принадлежит какому-то определенному титровальному объекту.
3.Из титровального скрипта можно управлять только теми титровальными элементами, которые входят в титровальный объект-"хозяин" скрипта.
4.Из титровального скрипта можно получить некоторую информацию о титровальном проекте (например, частоту кадров, размер кадра,...).
5.В скрипте можно менять и устанавливать свойства титровальных элементов, входящих в титровальный объект.
6.Скрипт работает на модели "событий" (.Net). Это означает, что в скрипте можно получать информацию об определенных событиях и реагировать на нее.
7.Не обязательно реагировать абсолютно на все события.
8.Все функции и события скрипта можно разделить на следующие группы:
-Связанные с инициализацией/деинициализацией самого скрипта
-События от внешних источников, например, от программы OnAir
-События от титровальных элементов, которые входят в титровальный объект-"хозяин" скрипта
-Связанные с предоставлением служебной информации "наружу", например, для программы OnAir.
9.Вызывать какие-нибудь процедуры и функции для управления титровальными элементами можно только в пределах событий.
10.Можно создавать свои собственные классы, процедуры, функции.
Рассмотрим подробнее все встроенные методы (функции, процедуры) титровального скрипта.
Набор функций для инициализации/деинициализации скрипта.
function Script(obj) - конструктор
function CleanUp(obj, e : VsaScriptingHostEventArgs) - вызывается при "разрушении" скрипта
function init() - вызывается при инициализации скрипта
function Unload() - вызывается при выгрузке скрипта (на этапе "разрушения")
Практическое значение могут иметь:
function init() - чтобы поинициализировать свои переменные, создать объекты и т.д.
function CleanUp(obj, e : VsaScriptingHostEventArgs) - чтобы деинициализировать свои переменные и объекты
Предоставление информации:
!!!Обращаем внимание, что эти функции декларируются как override, т.е. по своей сути они являются виртуальными. Это означает, что если вы их не переопределите в своем коде, то будут вызваны аналогичные методы из базовых классов титровальной системы.
Данные функции предназначены для предоставления различной служебной инофрмации, например, для программы OnAir. Соответственно эти функции вызываются внешними программами в тех случаях, кодна нужно получить определенную информацию о
свойствах титровального объекта (которому принадлежит скрипт)
override function GetTaskInfo(task : String): TaskInfoArgs - возвращает структуру с информацией о задании. Например, о длительности задания, зациклено или нет воспроизведение.
override function GetLoopped() : TaskInfoArgs - возвращает структуру с информацией о задании(зациклено или нет воспроизведение).
override function GetPlayInfo() : PlayInfoArgs - возвращает информацию о некоторых свойствах титровального объекта на этапе вопроизведение
override function GetTask( ) : String - возвращает строчку с файлом-заданием, загруженным в титровальный объект
override function GetTaskMask( ) : String - возвращает маску с типами файлов, которые можно загрузить в данный титровальный объект
override function GetStatus(): LogotypeLib.SLTMRunTimeStatus - возвращает текущее состояние титровального объекта (запущен, остановлен,...)
События от внешних источников, например, от программы OnAir.
!!!Обращаем внимание, что эти функции декларируются как override, т.е. по своей сути они являются виртуальными. Это означает, что если вы их не переопределите в своем коде, то будут вызваны аналогичные методы из базовых классов титровальной системы.
Эти события возникают при выполнении в программе OnAir основных команд по управлению титрами - "Включить титровальный объект", "Выключить титровальный объект", "Прерывание исполнения объекта", "Загрузить титровальный объект".
override function Start(atStart : double, fadeDuration : double) - событие возникает при включении титровального объекта
override function Stop(atStop : double, fadeDuration : double) - событие возникает при выключении титровального объекта
override function Abort(fadeDuration : double) - событие возникает при прерывании воспроизведения титровального объекта
override function LoadTask(task: String ) - событие возникает при загрузке задания в титровальный объект
События от титровальных элементов, входящих в титровальный объект-"хозяин" скрипта
!!!Обращаем внимание, что эти функции декларируются как override, т.е. по своей сути они являются виртуальными. Это означает, что если вы их не переопределите в своем коде, то будут вызваны аналогичные методы из базовых классов титровальной системы.
override function OnStatusChanged(name: String, index: int, oldStatus: LogotypeLib.SLTMRunTimeStatus, newStatus: LogotypeLib.SLTMRunTimeStatus) - смена состояния титровального элемента name
override function OnStopTimeChanged(elementName: String, index: int, newStopTime: double) - изменение времени остановки титровального элемента name
override function OnElementStart(name: String, index: int, id: int, time: double, firstStopTime: double, stopTime: double, text: String) - старт титровального элемента name
override function OnElementFinishing(name: String, index: int, id: int, time: double, text: String) - титровальный элемент name практически закончил свой показ
override function OnElementStop(name: String, index: int, id: int, time: double, text: String)- титровальный элемент name полностью закончил свой показ
Теперь попробую ответить на вопросы.
Нельзя вызывать методы "на ровном" поле. Их можно вызывать только в пределах событий - см. п.6 и п.9
Открываем пример C:\Program Files\ForwardT Software\FDTitle\TitleScripting\CrawlPhoneStopSpace.SLTitleProj
Видим примерно следующее (здесь я сократил размер кода):
override function Stop(atStop : double, fadeDuration : double) : boolean {
try
{
Crawl.Stop(atStop, fadeDuration);
return true;
}
catch (ee)
{
;
}
return false;
}
Суть происходящего - бегучку останавливают тогда, когда снаружи останавливают титровальный объект ее содержащий. Соответственно все действия происходят в "событии" override function Stop. Жирным выделен сам процесс остановки.
Остальное немного позже.
Основные идеи "титровальных скриптов" следующие:
1.Каждый титровальный скрипт - это небольшая программа для управления титровальными элементами.
2.Каждый скрипт принадлежит какому-то определенному титровальному объекту.
3.Из титровального скрипта можно управлять только теми титровальными элементами, которые входят в титровальный объект-"хозяин" скрипта.
4.Из титровального скрипта можно получить некоторую информацию о титровальном проекте (например, частоту кадров, размер кадра,...).
5.В скрипте можно менять и устанавливать свойства титровальных элементов, входящих в титровальный объект.
6.Скрипт работает на модели "событий" (.Net). Это означает, что в скрипте можно получать информацию об определенных событиях и реагировать на нее.
7.Не обязательно реагировать абсолютно на все события.
8.Все функции и события скрипта можно разделить на следующие группы:
-Связанные с инициализацией/деинициализацией самого скрипта
-События от внешних источников, например, от программы OnAir
-События от титровальных элементов, которые входят в титровальный объект-"хозяин" скрипта
-Связанные с предоставлением служебной информации "наружу", например, для программы OnAir.
9.Вызывать какие-нибудь процедуры и функции для управления титровальными элементами можно только в пределах событий.
10.Можно создавать свои собственные классы, процедуры, функции.
Рассмотрим подробнее все встроенные методы (функции, процедуры) титровального скрипта.
Набор функций для инициализации/деинициализации скрипта.
function Script(obj) - конструктор
function CleanUp(obj, e : VsaScriptingHostEventArgs) - вызывается при "разрушении" скрипта
function init() - вызывается при инициализации скрипта
function Unload() - вызывается при выгрузке скрипта (на этапе "разрушения")
Практическое значение могут иметь:
function init() - чтобы поинициализировать свои переменные, создать объекты и т.д.
function CleanUp(obj, e : VsaScriptingHostEventArgs) - чтобы деинициализировать свои переменные и объекты
Предоставление информации:
!!!Обращаем внимание, что эти функции декларируются как override, т.е. по своей сути они являются виртуальными. Это означает, что если вы их не переопределите в своем коде, то будут вызваны аналогичные методы из базовых классов титровальной системы.
Данные функции предназначены для предоставления различной служебной инофрмации, например, для программы OnAir. Соответственно эти функции вызываются внешними программами в тех случаях, кодна нужно получить определенную информацию о
свойствах титровального объекта (которому принадлежит скрипт)
override function GetTaskInfo(task : String): TaskInfoArgs - возвращает структуру с информацией о задании. Например, о длительности задания, зациклено или нет воспроизведение.
override function GetLoopped() : TaskInfoArgs - возвращает структуру с информацией о задании(зациклено или нет воспроизведение).
override function GetPlayInfo() : PlayInfoArgs - возвращает информацию о некоторых свойствах титровального объекта на этапе вопроизведение
override function GetTask( ) : String - возвращает строчку с файлом-заданием, загруженным в титровальный объект
override function GetTaskMask( ) : String - возвращает маску с типами файлов, которые можно загрузить в данный титровальный объект
override function GetStatus(): LogotypeLib.SLTMRunTimeStatus - возвращает текущее состояние титровального объекта (запущен, остановлен,...)
События от внешних источников, например, от программы OnAir.
!!!Обращаем внимание, что эти функции декларируются как override, т.е. по своей сути они являются виртуальными. Это означает, что если вы их не переопределите в своем коде, то будут вызваны аналогичные методы из базовых классов титровальной системы.
Эти события возникают при выполнении в программе OnAir основных команд по управлению титрами - "Включить титровальный объект", "Выключить титровальный объект", "Прерывание исполнения объекта", "Загрузить титровальный объект".
override function Start(atStart : double, fadeDuration : double) - событие возникает при включении титровального объекта
override function Stop(atStop : double, fadeDuration : double) - событие возникает при выключении титровального объекта
override function Abort(fadeDuration : double) - событие возникает при прерывании воспроизведения титровального объекта
override function LoadTask(task: String ) - событие возникает при загрузке задания в титровальный объект
События от титровальных элементов, входящих в титровальный объект-"хозяин" скрипта
!!!Обращаем внимание, что эти функции декларируются как override, т.е. по своей сути они являются виртуальными. Это означает, что если вы их не переопределите в своем коде, то будут вызваны аналогичные методы из базовых классов титровальной системы.
override function OnStatusChanged(name: String, index: int, oldStatus: LogotypeLib.SLTMRunTimeStatus, newStatus: LogotypeLib.SLTMRunTimeStatus) - смена состояния титровального элемента name
override function OnStopTimeChanged(elementName: String, index: int, newStopTime: double) - изменение времени остановки титровального элемента name
override function OnElementStart(name: String, index: int, id: int, time: double, firstStopTime: double, stopTime: double, text: String) - старт титровального элемента name
override function OnElementFinishing(name: String, index: int, id: int, time: double, text: String) - титровальный элемент name практически закончил свой показ
override function OnElementStop(name: String, index: int, id: int, time: double, text: String)- титровальный элемент name полностью закончил свой показ
Теперь попробую ответить на вопросы.
Нет, этот код ничего никому не должен.1. Как (можно ли?) использовать функции класса Script?
нижеприведенный код должен по идее останавливать бегучку, но этого не происходит:
class Script extends SLTMTitleCommon.Scripting.ScriptBase {...}
var crawl = new Script(titleRoot);
crawl.Abort(5) //<-- функция выполняется но строка так и бежит //crawl.Stop тоже ничего не меняет
Нельзя вызывать методы "на ровном" поле. Их можно вызывать только в пределах событий - см. п.6 и п.9
Напишите пример кода как запускать/останавливать титр
Открываем пример C:\Program Files\ForwardT Software\FDTitle\TitleScripting\CrawlPhoneStopSpace.SLTitleProj
Видим примерно следующее (здесь я сократил размер кода):
override function Stop(atStop : double, fadeDuration : double) : boolean {
try
{
Crawl.Stop(atStop, fadeDuration);
return true;
}
catch (ee)
{
;
}
return false;
}
Суть происходящего - бегучку останавливают тогда, когда снаружи останавливают титровальный объект ее содержащий. Соответственно все действия происходят в "событии" override function Stop. Жирным выделен сам процесс остановки.
Да.2. Параметры atStop: double, fadeDuration: double, time: double это количество секунд?
Остальное немного позже.
-
- Сообщения: 5
- Зарегистрирован: 28 май 2009 12:54
- Откуда: Тюмень
Здравствуйте. Тема затихла, видимо всем все ясно
А у меня вопрос возник по скрипту.
Когда я вызываю функцию:
Main1.LoadTask("Текст первого элемента однако", ETaskType.eTaskText);
то сразу же начинается воспроизведение в элементе Main1, а хотелось бы указать запуск чуть позже через Main1.Start(time,0) например.
А у меня вопрос возник по скрипту.
Когда я вызываю функцию:
Main1.LoadTask("Текст первого элемента однако", ETaskType.eTaskText);
то сразу же начинается воспроизведение в элементе Main1, а хотелось бы указать запуск чуть позже через Main1.Start(time,0) например.
-
- Сообщения: 7091
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 5
- Зарегистрирован: 28 май 2009 12:54
- Откуда: Тюмень
Не знаю как тут на форуме с длинными постами со скрптами, потому положил скрипт на http://goo.gl/JoIFL
В бегущую строку загружается один и тот же текст для упрощения на период тестирования. Смысл в том чтобы сделать зацикленную бегущую строку, в данном случае используется 3 элемента "бегущая строка" Дальше, естественно, посложнее будет
Так вот у меня в версии 5.2.0 бежит это все в цикле очень замечательно и без Start. Строка 95.
В бегущую строку загружается один и тот же текст для упрощения на период тестирования. Смысл в том чтобы сделать зацикленную бегущую строку, в данном случае используется 3 элемента "бегущая строка" Дальше, естественно, посложнее будет
Так вот у меня в версии 5.2.0 бежит это все в цикле очень замечательно и без Start. Строка 95.
-
- Сообщения: 13
- Зарегистрирован: 28 мар 2011 17:04
Поведение функции LoadTask несколько отличается при работе под FDTitleDesigner и при работе под FDOnAir(или под FDTitleRunTimeTest.exe).advers писал(а):Когда я вызываю функцию:
Main1.LoadTask("Текст первого элемента однако", ETaskType.eTaskText);
то сразу же начинается воспроизведение в элементе Main1, а хотелось бы указать запуск чуть позже через Main1.Start(time,0) например.
Разница заключается в том, что под FDOnAir(FDTitleRunTimeTest.exe) функция LoadTask всегда приводит к остановке элемента.
Под FDTitleDesigner все элементы запускаются в режиме превъю и по LoadTask перестартуют (начинают проигрывать новое задание). Это было сделано для того, чтобы пользователь, при загрузке задания (через OpenFileDialog), сразу увидел новое задание.
Чтобы предотвратить такое поведение элементов, в скрипте можно переопределить Функцию Start() и стартовать свои элементы в ней. Судя по приведённому стрипту вы собираетесь осуществлять достаточно сложное упраление элементами и вам это необходимо будет сделать.
-
- Сообщения: 5
- Зарегистрирован: 28 май 2009 12:54
- Откуда: Тюмень
Хорошо. Благодарю, уже понтянее. Раз в FDTitleRunTimeTest работает как надо, буду тестировать в нем. Что мне даст переопределение Start не совсем ясно. Можно изнутри функции узнать какой элемент стартует?
И еще тогда вопрос, можно ли получить из титровального объекта все титровальные элементы ему принадлежащие? Хочется чтобы скрипт мог узнавать какие элементы есть, чтобы не прописывать их вручную.
И еще тогда вопрос, можно ли получить из титровального объекта все титровальные элементы ему принадлежащие? Хочется чтобы скрипт мог узнавать какие элементы есть, чтобы не прописывать их вручную.
-
- Сообщения: 13
- Зарегистрирован: 28 мар 2011 17:04
По умолчанию, по кнопке 'Start preview' FDTitleDesigner стартует ВСЕ элементы в режиме превъю.advers писал(а):Что мне даст переопределение Start не совсем ясно. Можно изнутри функции узнать какой элемент стартует?
Переопределив функцию Start() вы получаете полный контроль над стартом элементов. Т.е. вы сами должны будете старотовать только те элементы, которые вам необходимо. Насколько я понимаю, сначала вам надо старотовать только один элемент Main0, а затем, когда он закончится, стартовать следующий и т.д.
Кроме того, как я уже писал, стартовав элементы из скрипта вызовом функции Main0.Start(..), вы можете тестировать и отлаживатть скриты в самом FDTitleDesigner.
Как написано в хелпе (TitleScriptDocumentation.chm), из скрипта доступен глобальный объект с именем 'titleRoot', типа 'TitleObjectWrapper'. У него есть свойство Count - кол-во элементов и индексированное свойство Item[], которое выдаёт элемент по индексу (0 <= i <= Count-1).advers писал(а):И еще тогда вопрос, можно ли получить из титровального объекта все титровальные элементы ему принадлежащие? Хочется чтобы скрипт мог узнавать какие элементы есть, чтобы не прописывать их вручную.
Успехов. Дмитрий.
-
- Сообщения: 5
- Зарегистрирован: 28 май 2009 12:54
- Откуда: Тюмень