Работа 2. Создание анимационных связей.
Цель работы:
- копирование и вставка объектов;
- присваивание объектам динамических свойств.
1. Откройте окно Links.
2. Скопируйте клапан и кнопку из ранее созданного окна.Для этого откройте его, выделите объекты и нажмите кнопку Copy на главной панели инструментов.
3. Перейдите в окно Links с помощью команд меню Windows (выбор окон) и нажмите кнопку Paste (вставить).
4. Командой Special/Tagname Dictionary откройте словарь переменных и создайте две переменные DiscTag1 и DiscTag2 типа Memory Discrete.
Для этого в словаре переменных (Tagname Dictionary) нажмите кнопку New и введите имя первой переменной в поле Tagname. Затем откройте диалог выбора типа переменной Tag Typesнажатием кнопки Type (см. рис.). Выберите тип переменной Memory Discrete и нажмите Ok. В словаре переменных сохраните только что определенную переменную (Save).
Проделайте эту же последовательность операций для определения второй переменной.
5. Дважды щелкните на клапане для вызова меню анимационных связей. Поочередно установите динамические связи Line Color, Fill Color и Text Color (все - типа Discrete,см.рис.) для переменной с именем DiscTag1.
6. В выводимых диалогах для 0, FALSE, Off выберите красный цвет, а для 1, TRUE, On - светло-зеленый.
7. Для анимирования кнопки DiscTag1 дважды щелкните на ней, затем определите её как Touch Pushbutton со свойством Discrete Value ис действием Direct. В поле Tagname введите имя переменной DiscTag1.
8. После динамизации клапана и кнопки создайте их копию: выделите клапан с кнопкой и щелкните по кнопке Duplicateобщей панели инструментов.Расположите клапаны рядом, как показано на рисунке.
9. Выделите второй клапан и выполните команду Special/Substitute Strings (или CTRL+L). Замените текст под вторым клапаном на Valve 2 (предварительно «разбейте» символ на составные части). Затем такой же командой замените текст кнопки под вторым клапаном на DiscTag2.
10. Дважды щелкните на втором клапане для вызова меню анимационных связей. Поочередно установите динамические связи Line Color, Fill Color и Text Color (все - типа Discrete) для переменной с именем DiscTag2(см. п.5).
11. В этих диалогах для 0, FALSE, Off выберите черный цвет, а для 1, TRUE, On - синий.
12. Определите кнопку DiscTag2 как User Input со свойством Discreteи «привяжите» к переменной DiscTag2. Задайте текст приглашения и сообщений о состоянии клапана.
13. Перейдите в среду исполнения WindowViewer (щелчком по тексту Runtime в правом верхнем углу окна WindowMaker). Клапаны должны изменять цвет в зависимости от состояния.
14. Вернитесь в среду WindowMaker (щелчком по тексту Development в правом верхнем углу окна WindowViewerили командой меню File). Установите динамические свойства для указателя движкового регулятора RealTag Value Indicator. Дважды щелкните на указателе. Определите его как Slider/Horizontalи «привяжите» к нему переменную RealTag типа Memory Real.
15. В поле At Left End Value (значения переменной, соответствующее крайнему левому положениям движка) введите 0, в поле At Right End Value (значения переменной, соответствующее крайнему правому положению движка) - 500, в поле Horizontal Movement To Left- 0 и в поле Horizontal Movement To Right(перемещение движка вправо в пикселях) – 300 (L).
Для определения величины L выделите шкалу индикатора. Ширина шкалы в пикселях (L) будет отображена в строке состояния (300, см. рис.).
16. Если переменная RealTag не определена, то система предложит определить ее. Создайте переменную RealTag типа Memory Real с Initial Value - 250, Min Value -0 и Max Value - 500.
17. Если переменная IntTag не определена, определите ее как переменную типа Memory Integer с Initial Value = 250, Min Value = 0 и Max Value=500 (переменная понадобится позже).
18. Присвойте текстовому объекту RealTag # динамическое свойство User Input/Analogи «привяжите» его к переменной RealTag. Задайте Min Value=0 и Max Value=480.
19. Дважды щелкните на прямоугольнике шкалы Value Indicator и добавьте свойство Percent Fill (степень заполнения).
20. Определите свойство Percent Fill/Horizontal, «привязав» его к переменной RealTag. Укажите 500 для Value at Max Fill (значение переменной, соответствующее максимальному заполнению) и выберите цвет фона. Направление заполнения (Direction) - вправо (Right).
21. Перейдите в среду исполнения. При перемещении указателя длина закрашенной области индикатора должна соответствовать отображаемому значению переменной. Введите новое значение переменной, щелкнув на поле отображения значения переменной. Индикатор значения должен переместиться.
Задание для самостоятельного выполнения.
1. Задайте свойство Object Size/Height (высота) большому кругу в этом окне так, чтобы его высота была 100%, когда RealTag = 500, и 0%, когда RealTag=0. Увеличение от центра.
Задайте свойство Object Size/Width (ширина) этому же объекту, чтобы его ширина была100%, когда RealTag = 500, и 0%,когда RealTag = 0. Увеличение из центра.
Задайте кругу свойство Fill Color /Analog, указав 100, 200, 300 и 400 в качестве BreakPoints. Выберите 5 цветов. «Привяжите» это свойство к переменной RealTag. Перейдите в среду исполнения и проверьте работу приложения.
2. Выделите объект Транспортер и «разбейте» его на составляющие. Обратите внимание, что он состоит из нескольких частей: верхней ступеньки, набора ступенек, направляющих и др.
Наборуступенекзадайте свойство Location/Vertical. В поле Expression введите$Second MOD 10(с пробелами). В поле At Topвведите 10, в поле Up - 20. Значения полей At Bottomи Downзадайте равными 0.
Этому же набору ступенек задайте свойство Location/Horizontal. В поле Expression такжевведите$Second MOD 10. Оставьте значения полей At Left Endи To Leftравными 0. В поле At Right Endвведите значение10,а в поле To Right- 20.
Перейдите в среду исполнения. Ступени транспортера должны перемещаться.
Раздел 3. Скрипты.
С помощью скриптов можно значительно расширить возможности разрабатываемых приложений. Они позволяют исполнять определенные последовательности команд и логических операций после выполнения некоторого условия (раскрытия окна, нажатия на клавишу, изменения значения переменной или выражения и т. д.).
Типы скриптов.
* Скрипты уровня приложения(Application Scripts) относятся ко всему приложению и используются для запуска других приложений, имитации технологических процессов, вычисления значений переменных и т.д. Могут исполняться один раз в момент запуска или завершения приложения или периодически через заданные интервалы времени.
* Скрипты уровня окна(Window Scripts) связываются с конкретным окном. Могут исполняться один раз в момент открытия или закрытия окна или периодически через заданные интервалы времени пока окно отображается на экране.
* Клавишные скрипты(Key Scripts) привязываются к какой-либо клавише или комбинации клавиш клавиатуры. Это может быть полезным при создании каких-либо глобальных для всего приложения функций (возврат в главное окно, окончание сеанса работы с приложением и т. д.). Могут исполняться один раз в момент нажатия на клавишу или ее отпускания, а также периодически пока нажата клавиша.
Для определения комбинации клавиш можно отметить опции SHIFT и CTRL, и нажать кнопку Key. Откроется окно со списком допустимых клавиш. Для выбора клавиши в диалоге следует щелкнуть на ее имени.
* Скрипты, запускаемые кнопками(Touch Pushbutton Action Scripts) очень похожи на клавишные скрипты и связываются с объектами, которые будут использоваться в качестве исполнительных кнопок. Эти скрипты запускаются при каждом нажатии на объект-кнопку.
* Скрипты по изменению логического выражения(Condition Scripts) связываются с логической переменной или выражением, которое будет принимать значения либо «истина», либо «ложь». Логические скрипты могут содержать в себе и аналоговые переменные. Могут исполняться один раз в момент перехода переменной в состояние «истина» («ложь») или непрерывно пока значение переменной «истина» («ложь»).
* Скрипты по изменению данных(Data Change Scripts) связываются либо с переменной, либо с полем переменной. Эти скрипты исполняются только один раз, когда значение переменной либо поля меняется на величину, превышающую значение допуска, заданного в словаре переменных.
* Скрипты событий ActiveX(ActiveX Event) предназначены для поддержки механизма реакции на события в ActiveX - объектах. С каждым событием может быть связан один скрипт типа ActiveX Event, запускающийся в WindowViewer во время исполнения приложения.
* Quick Function- скрипты, которые могут вызываться из других скриптов и использоваться в выражениях при определении динамических свойств объектов.
Редактор скриптов.
Диалоги редактора, открываемые при создании скриптов различных типов, имеют небольшие отличия. Вызов диалога редактора скриптов в окне WindowMaker осуществляется командой Special/Scripts с последующим выбором типа создаваемого или редактируемого скрипта. Для этого можно также воспользоваться окном Application Explorer, выбрав папку Scripts(открыть редактор уровня окна).
В нижней части редактора (см. рис. на следующей странице) – кнопки ввода ключевых слов и математических операторов. После нажатия кнопки они будут вставлены в скрипт.
Справа, в поле Functions, размещены кнопки выбора встроенных функций. Сверху расположено меню и несколько иконок, дублирующих команды меню.
* Создание нового скрипта – командаScript/New.
* Выделить весь скрипт, вырезать, копировать, вставить, уничтожить весь скрипт – команды меню Edit.
Для вставки в скрипт имени переменной или имени окна – команды меню Insert (Tagname, Window) или соответствующие иконки. В первом
случае появится браузер переменных. Двойной щелчок на выбранной переменной вставляет ее в скрипт. Двойной щелчок по имени переменной выводит на экран диалог определения переменной. Во втором случае появится список всех окон приложения.
* Для вставки в скрипт поля переменной следует в браузере переменных выбрать переменную и нажать кнопку со стрелкой Dot Field. Появится список полей этой переменной. После выбора поля щелкнуть Ok. Поле переменной будет вставлено в скрипт. Быстро вставить поле переменной можно, напечатав имя переменной с точкой, и дважды щелкнуть справа. Появится диалог Choose field name. Выбрать поле, которое сразу же будет вставлено в скрипт.
* Для поиска или замены переменной ввести команду Edit/Find. На экране появится диалог Replace. Ввести исходное имя переменной (верхняя строка) и нажать Find Next (следующее). Имя этой переменной будет высвечено в поле скрипта. Нажать кнопку Replace (заменить) и нажать Find Next для поиска следующего «старого» имени переменной. Для замены переменной по всему тексту скрипта нажать Replace All.
* Для проверки синтаксиса скрипта нажать Validate (проверка). Проверка выполняется автоматически при нажатии Ok или Save. При обнаружении ошибки на экран будет выведено сообщение.
* При создании нескольких скриптов для сохранения одного нажать Save, а затем создать новый скрипт кнопкой New. Сохранение скриптов уровня приложения и окна производится нажатием Ok.
* Для выхода из редактора скрипта ввести команду Scripts/Exit.
Встроенные функции.
В пакете InTouch имеется набор встроенных функций, которые могут быть связаны с командами или использованы в скриптах для выполнения самых различных задач.
Все встроенные функции разбиты на четыре группы:
- String... - для обработки различных символьных строк и переменных;
- Math... - математические функции (работают с целыми и
вещественными аргументами);
- System... - системные функции делятся на две категории: файловые
(File) и для работы с Windows - приложениями (Info). Применяются
для выполнения таких действий, как запуск другого Windows –
приложения, получение информации о приложении, копирование,
уничтожение или перемещение файлов и т. д.;
- Misc... - функции для работы с алармами распределенных систем
(Ack), архивными трендами (HT), печатью и др.
Вызов списка функций группы осуществляется нажатием соответствующей клавиши. Назначение функций и описание их аргументов приведено в документации.
Вставка встроенных функций в скрипт производится щелчком по выбранной функции в списке функций. Она вместе со своими аргументами будет автоматически вставлена в текст скрипта в точку, указанную курсором. После этого можно отредактировать список аргументов.
По окончании редактирования скрипта следует нажать кнопку Ok. При обнаружении в скрипте каких-либо ошибок на экран будет выведено соответствующее сообщение. В большинстве случаев курсор установится в ту позицию, которая привела к появлению ошибки. Прежде чем скрипт будет сохранен, все ошибки должны быть исправлены.