<< Click to Display Table of Contents >> Сложное изменение цвета со скриптами |
|
Предположим, у Вас есть множество однотипных объектов (мотор), у каждого из которых есть 2 параметра (состояние и скорость). Вам требуется изменять цвет объекта в зависимости от состояния и скорости.
Мы уже знаем, что если цвет менятся в зависимости от значений нескольких тегов, то нам необходимо использовать скрипты; а если мы используем однотипные объекты - для того чтобы упростить привязку продублированых объектов к тегам, нужно использовать косвенные имена, основанные на пользовательстких свойствах.
Посмотрим на примере.
1. Создадим для каждого объекта Мотор - 2 тега (State и Speed). Для удобства сделаем это ввиде группы, а затем скопируем группу по количеству объектов в проекте:
2. Создадим для нашего примера графический объект Motor:
Откроем окно свойств объекта, создадим пользовательское свойство - Number со значение "1", т.к. данный объект мы будем привязывать к тегам State1 Speed1:
3. Теперь нам нужно создать скрипт для объекта на языке ST с типом выполнения - OnDataChange:
В зависимости от значений тега для каждого объекта Мотор будем использовать цвет заливки:
State |
Speed |
Цвет |
---|---|---|
0 |
Любая |
RED |
1 |
0...500 |
GREEN |
1 |
500...1000 |
YELLOW |
1 |
>1000 |
BLUE |
Напишем наш скрипт:
После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов:
4. Привяжем наш скрипт к объекту: откроем свойства объекта Мотор, далее - Скрипты/Коллекция и привяжем наш скрипт:
Теперь у нас есть Мотор с настройкой свойства Цвет заполнения, прописанный в скрипте.
5. Теперь продублируем объект столько раз, сколько нужно для проекта. Т.к. мы использовали пользовательское свойство, нам не нужно настраивать скрипт для каждого Мотора. Нам нужно только продублировать Мотор и изменить значение пользовательского свойства:
6. Запустим имитацию, чтобы проверить настройки:
Вы можете скачать проект из примера здесь.