Страница 1 из 1
цвет RGB
Добавлено: Чт сен 10, 2020 1:44 am
SlavaAf
Добрый день, подскажите как сделать всплывающую панель (от клика на объекте сцены) при котором можно было бы движком выбрать цвет RGB.
На пультах такого не нашел, может кто делал?
Re: цвет RGB
Добавлено: Чт сен 10, 2020 1:58 am
xor
SlavaAf писал(а): ↑Чт сен 10, 2020 1:44 am
Добрый день, подскажите как сделать всплывающую панель (от клика на объекте сцены) при котором можно было бы движком выбрать цвет RGB.
На пультах такого не нашел, может кто делал?
в интерфейсе mboard есть готовый виджет
в системе есть встроенный, например в ПУ, колорпикер.
Диван, вроде, в своих сценах делал
Re: цвет RGB
Добавлено: Чт сен 10, 2020 2:16 am
SlavaAf
Re: цвет RGB
Добавлено: Чт сен 10, 2020 2:21 am
xor
SlavaAf писал(а): ↑Чт сен 10, 2020 2:16 am
Еще бы знать как это прикрепить к своему классу
вот у меня такой шаблон класса ргб, выдранный из пу
Только свои свойства и методы пропишите (где %%)
Код: Выделить всё
<style>
.myrgb-widget {
}
.myrgb-text {
padding-top:10px;
cursor:pointer;
vertical-align:middle;
}
.myrgb-light {
border-radius:50%;
width:22px;
height:22px;
border:2px solid #3d3d3d;
margin-top:5px;
float:left;
margin-right:10px;
}
.myrgb-light.on {
background-color:#FFC773;
box-shadow: 0px 0px 15px #FF9900;
border-color:#FDF1DF;
}
</style>
<script src='/3rdparty/spectrum/spectrum.min.js'></script>
<link rel='stylesheet' href='/3rdparty/spectrum/spectrum.min.css' />
<div class="myrgb-widget">
<div class="myrgb-light %.status|"off;on"%"></div>
<div class="myrgb-text" style='display:%.status|"none;block"%;cursor:pointer' onClick='callMethod("%.object_title%.turnOff");'>%.name%</div>
<div class="myrgb-text" style='display:%.status|"block;none"%;cursor:pointer' onClick='callMethod("%.object_title%.turnOn");'>%.name%</div>
<div>
<input type="text" id="colnn" value="%.color%" onChange='callMethod("%.object_title%.setColor","color="+encodeURIComponent(this.value));'/>
</div>
<script>
$("#colnn").spectrum({
preferredFormat: "hex",
showInput: true,
chooseText: "OK",
cancelText: "Отмена"
});
</script>
</div>
Re: цвет RGB
Добавлено: Чт сен 10, 2020 2:30 am
SlavaAf
спасибо буду пробывать
Re: цвет RGB
Добавлено: Пт сен 11, 2020 2:25 am
SlavaAf
Не выходит до конца. Не могу принять измененное значение цвета.
Упростил немного под свою задачку код.
Код: Выделить всё
<script src='/3rdparty/spectrum/spectrum.min.js'></script>
<link rel='stylesheet' href='/3rdparty/spectrum/spectrum.min.css' />
<div class="rgb_class">
<div>
<input type="text" id="colnn" value="%.Color%" onChange='callMethod("%.object_title%.SetColor", "Color="+encodeURIComponent(this.value));'/>
</div>
<script>
$("#colnn").spectrum({
preferredFormat: "hex",
showInput: true,
chooseText: "OK",
cancelText: "Отмена"
});
</script>
%.Color%
</div>
Но по итогу инициализируется все нормально значением из свойства класса, а обратно не возвращает когда меняю цвет. Метод изменения цвета при этом запускается а свойство Color остается без изменений.
Наверное что-то простое упустил.

Re: цвет RGB
Добавлено: Пт сен 11, 2020 3:15 am
xor
SlavaAf писал(а): ↑Пт сен 11, 2020 2:25 am
Не выходит до конца. Не могу принять измененное значение цвета.
Упростил немного под свою задачку код.
Код: Выделить всё
<script src='/3rdparty/spectrum/spectrum.min.js'></script>
<link rel='stylesheet' href='/3rdparty/spectrum/spectrum.min.css' />
<div class="rgb_class">
<div>
<input type="text" id="colnn" value="%.Color%" onChange='callMethod("%.object_title%.SetColor", "Color="+encodeURIComponent(this.value));'/>
</div>
<script>
$("#colnn").spectrum({
preferredFormat: "hex",
showInput: true,
chooseText: "OK",
cancelText: "Отмена"
});
</script>
%.Color%
</div>
Но по итогу инициализируется все нормально значением из свойства класса, а обратно не возвращает когда меняю цвет. Метод изменения цвета при этом запускается а свойство Color остается без изменений.
Наверное что-то простое упустил.
а, у меня метод SetColor получает цвет через параметр color
Код: Выделить всё
if (!$params['color']) return;
$color = strtolower($params['color']);
$color = preg_replace('/^#/','',$color);
$transform = array(
'red'=>'ff0000',
'green'=>'00ff00',
'blue'=>'0000ff',
'white'=>'ffffff'
);
if (isset($transform[$color])) {
$color = $transform[$color];
}
if ($color == '000000') {
$this->callMethod('turnOff');
} else {
$this->setProperty('color',$color);
$this->callMethod('turnOn');
}
Re: цвет RGB
Добавлено: Пт сен 11, 2020 3:42 am
SlavaAf
Этот текст очень помог, все заработало, огромное спасибо!!!
Re: цвет RGB
Добавлено: Вс окт 11, 2020 1:38 pm
Divan
Статья на форуме про
колорпикер
Посмотреть
видео