Openlaszlo colorTransform выпуск

Я использую преобразование цвета, чтобы установить цвет на представлении, используя этот код в OL 3.3, это прекрасно работает.

obj.setColorTransform({ab: 0, aa: 100, 
                                bb: b-rB, ba: 100, 
                                gb: g-rG,  ga: 100, 
                                rb: r-rR,  ra: 100}); 

Но я столкнулся с проблемой, когда я обновил его до 5.0 SWF Runtime

obj.setAttribute('colortransform',{ab: 0, aa: 100, 
                                bb: b-rB, ba: 100, 
                                gb: g-rG,  ga: 100, 
                                rb: r-rR,  ra: 100});  

Объект здесь - это представление в этом формате,

  <view name="borders" 
              width="${parent.bg.width}"
              height="${parent.bg.height}" 
              y="10">
           <simplelayout axis="x"/>
           <view name="left" 
                 resource="border_left" 
                 stretches="height" 
                 height="${parent.height}" 
                 x="5" 
                 y="1">
              </view>
           <view name="middle" 
                 resource="border_mid" 
                 y="1"
                 stretches="width" 
                 height="${parent.height - 2}" 
                 width="${parent.width - parent.left.width - parent.right.width}">
           </view>
           <view name="right" 
                 resource="border_right" 
                 stretches="height" 
                 height="${parent.height}">
           </view>
        </view>

Любая идея, почему это не работает?

1 ответ

Решение

API изменился, когда setColorTransform({}) метод устарел в пользу .setAttribute('colortransform', {}), Вместо ra или же rb ключи свойств теперь redMultiplier, redOffset, Смотрите соответствующие разделы документации, приведенные ниже.

Еще одно изменение в API - это значения. Цитирование документации для setColorTransform():

Словарь имеет следующие возможные ключи: o.ra: процентное содержание альфа для красного компонента (от -100 до 100); o.rb: смещение для красного компонента (от -255 до 255); o.ga: процентное содержание альфа для зеленого компонента (от -100 до 100); o.gb: смещение для зеленого компонента (от -255 до 255); o.ba: процентное содержание альфа для синего компонента (от -100 до 100); o.bb: смещение для синего компонента (от -255 до 255); oaa: процентное содержание альфа (от -100 до 100); o.ab: общее смещение (от -255 до 255);

Сравните это с документацией представления colortransform атрибут:

Словарь имеет следующие возможные ключи: o.redMultiplier: множитель для красного компонента (от 0 до 1) по умолчанию равен 1 o.redOffset: смещение для красного компонента (от -255 до 255) по умолчанию равен 0 o.greenMultiplier: множитель для зеленого компонента (От 0 до 1) по умолчанию 1 o.greenOffset: смещение для зеленого компонента (от -255 до 255) по умолчанию до 0 o.blueMultiplier: множитель для синего компонента (от 0 до 1) по умолчанию 1 o.blueOffset: смещение для синего компонента (- От 255 до 255) по умолчанию 0 o.alphaMultiplier: множитель для альфа-компонента (от 0 до 1) по умолчанию 1 o.alphaOffset: смещение для альфа-компонента (от -255 до 255) по умолчанию 0

Как видно из документов, диапазон значений альфа-смещения изменился с -100 to 100 в 0 to 1, Следующий синтаксис работает при использовании setAttribute:

var transformValues =
        {redMultiplier: 0 to 1,    redOffset: -255 to 255,
         greenMultiplier: 0 to 1,  greenOffset: -255 to 255,
         blueMultiplier: 0 to 1,   blueOffset: -255 to 255,
         alphaMultiplier: 0 to 1,  alphaOffset: -255 to 255}
this.setAttribute('colortransform', transformValues);
Другие вопросы по тегам