Страница 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
Еще бы знать как это прикрепить к своему классу :D :D :D

Re: цвет RGB

Добавлено: Чт сен 10, 2020 2:21 am
xor
SlavaAf писал(а):
Чт сен 10, 2020 2:16 am
Еще бы знать как это прикрепить к своему классу :D :D :D
вот у меня такой шаблон класса ргб, выдранный из пу
Только свои свойства и методы пропишите (где %%)

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

<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 остается без изменений.
Наверное что-то простое упустил. :D :D :D

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 остается без изменений.
Наверное что-то простое упустил. :D :D :D
а, у меня метод 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
Статья на форуме про колорпикер

Посмотреть видео