Страница 1 из 2

Элемент сцены - "Изображение"

Добавлено: Чт дек 18, 2014 2:38 am
Bagir
Вот элемент Изображение
Изображение
У него есть состояния
Изображение
При клике можно на выбор запустить Скрипт, Объект.Метод, Показать меню и т.д. Поговорим о выборе Объект.Метод:
Тут нужно указать само имя объекта и имя его метода. А как передать параметры? Это очень нужно!!
Допустим мы вызываем метод объекта реле, в котором будет приниматься решение, включить или нет. Этому методу нужно сообщить, кто его вызвал. Конкретный пример - включение освещения. Если вызывает датчик движения - включить на 5 минут. Если кликом по элементу на сцене - включить на 1 час. То есть, методу нужно знать, кто именно его вызывает, чтобы соответственно отреагировать.
Сейчас, чтобы как то передать параметры, я выбираю "Выполнить сценарий при клике", а в этом сценарии просто пишу одну строчку кода

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

callMethod("RelayProjectorsDriveway.sendMessage",array("whosent"=>'Объект_на_сцене_лампа'));
но уже с передачей параметров.

Варианты решений:
1. Для выбора Запускать Объект.Метод добавить еще одно поле, с указанием параметров. Например вписывать туда все что находится внутри array(...)
2. К выбору Скрипт, Метод, Меню и т.д. добавить Код. А в соответствующем поле можно будет написать любой код, который нужно.

PS Вариант 2 мне нравится намного больше.

Re: Элемент сцены - "Изображение"

Добавлено: Чт дек 18, 2014 11:47 am
sergejey
Ещё вариант обхода органичения это добавить отдельный метод типа SendMessageScene

Re: Элемент сцены - "Изображение"

Добавлено: Чт дек 18, 2014 5:42 pm
Bagir
Да, можно и так. Просто у меня уже есть горькой опыт работы с одной системой. Ewclid. Может кто знает. Ее планировщик мало что позволял. Но я все еж выпросил, чтобы сделали возможность запускать сторонние приложения. После этого я начал закидывать свои скрипты пачками. В конечном итоге уже было трудно понять и отследить работу системы.
Так то пока отсутствие параметров не так уж и проблематично.

Re: Элемент сцены - "Изображение"

Добавлено: Чт дек 18, 2014 11:49 pm
Bagir
А почему бы не сделать так же, как сейчас в настройке элемента меню? Там есть сразу все на выбор. Мне очень нравится! Все очень просто, и в то же время позволит сделать любую сложную схему. Пока что, я не делал таких очень сложных схем, когда используется сразу и объект метод (или/и код) и запуск скрипта одновременно. Но планы есть. Просто еще до них не добрался. Главное, я вижу в этом свободу. Ну и еще настройка элементов будет похоже друг на друга, что не маловажно.
Изображение

Re: Элемент сцены - "Изображение"

Добавлено: Пт дек 19, 2014 7:34 pm
Ivan
Замените файл в templates\scenes

Re: Элемент сцены - "Изображение"

Добавлено: Сб дек 20, 2014 12:55 am
Bagir
Ivan писал(а):Замените файл в templates\scenes
Пожалуйста немного подробней что должно произойти? В последнем обновлении есть
sergejey писал(а):* Возможность по клику на элемент сцены задать произвольный код
Это что то другое или оно и есть? Я обновился и теперь вижу новый выбор "Код". Так то это решает все мыслимые и немыслимые просьбы и предложения. Разве что лично мне все равно больше нравится вариант где всё открыто сразу без необходимости выбора чего то одного, как сейчас сделано в меню. Но это конечно на любителя.

Re: Элемент сцены - "Изображение"

Добавлено: Сб дек 20, 2014 10:52 am
Ivan
Я сделал что вы просили в посте от 19 дек 2014, 00:49

Re: Элемент сцены - "Изображение"

Добавлено: Сб дек 20, 2014 7:46 pm
Bagir
Ivan писал(а):Я сделал что вы просили в посте от 19 дек 2014, 00:49
Все понял, большое спасибо! Похоже Сергей добавил это в обновление. Поэтому я и не увидел разницу. Сегодня перенесу код запуска метода с параметром из скриптов в элемент на сцене.

Re: Элемент сцены - "Изображение"

Добавлено: Сб дек 20, 2014 9:58 pm
Bagir
Работает. Все что пишу в коде, все выполняется. Но на сценах у элемента отображается весь написанный код. Что то не так.
Изображение

Re: Элемент сцены - "Изображение"

Добавлено: Сб янв 03, 2015 11:50 pm
Bagir
Серёж, пожалуйста посмотри по возможности. Код так и прописывается прямо на сцене. Более того, если там будет что то наподобие

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

$sc='<img src="http://10.10.3.2:8000/asip-api/live/media/SERVER/DeviceIpint.4/SourceEndpoint.video:0:0?format=mjpeg&w=960&h=0" style="display:inline; top:120px; left:60px; width:640px; height:360px; position:relative;">';  
sg('ThisComputer.StreamingCode',$sc);
То все что у $sс в '' будет тоже сразу отображено на сцене. В данном примере у переменной $sc правильный код изображения. Оно и будет вставлено сразу, точно так же как просто печатается любой код.