2

我正在使用颜色转换在 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 运行时时我遇到了这个问题

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

这里的obj就是这种格式的视图,

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

知道为什么这不起作用吗?

4

1 回答 1

1

当该setColorTransform({})方法被弃用以支持.setAttribute('colortransform', {}). 而不是raorrb属性键现在是redMultiplier, redOffset。请参阅下面引用的相应文档部分。

API 的另一个变化是值。引用文档setColorTransform()

字典有以下可能的键: o.ra:红色分量的百分比 alpha(-100 到 100);o.rb:红色分量的偏移量(-255 到 255);o.ga:绿色成分的百分比 alpha(-100 到 100);o.gb:绿色分量的偏移量(-255 到 255);o.ba:蓝色分量的 alpha 百分比(-100 到 100);o.bb:蓝色分量的偏移量(-255 到 255);o.aa:总体 alpha 百分比(-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:alpha 分量的乘数(0 到 1)默认为 1 o.alphaOffset:alpha 分量的偏移量(-255 到 255)默认为 0

正如您从文档中看到的那样,alpha 偏移的值范围从更改-100 to 1000 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);
于 2012-11-20T10:06:02.433 回答