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);