2012-11-14 40 views
2

我使用顏色轉換在OL 3.3中使用此代碼在視圖上設置顏色,這很好。Openlaszlo colorTransform問題

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> 

任何想法,爲什麼這不管用?

回答

1

setColorTransform({})方法棄用.setAttribute('colortransform', {})時,API已更改。而不是rarb屬性鍵現在是redMultiplier,redOffset。請參閱下面引用的相應文檔部分。

API的另一個變化是值。引用的文檔setColorTransform()

字典具有以下可能的鍵:o.ra:用於紅色分量(-100〜100)百分比的α ; o.rb:紅色分量的偏移量(-255 至255); o.ga:綠色分量的alpha百分比(-100至100); o.gb:綠色分量的偏移量(-255至255); o.ba:藍色分量(-100至100)的百分比alpha ; 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)默認值s到 1 o.blueOffset:藍色分量的偏移量(-255到255)默認爲0 o.alphaMultiplier:alpha分量的倍數(0到1)默認爲 1 o.alphaOffset:alpha分量的偏移量(-255到255)的缺省值爲0

正如可以從文檔看到的,數值範圍的α偏移改變從-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); 
+0

這是一個令人困惑的API更改,很容易忽略此更改。這兩種方法的文檔都應該說明alpha的值範圍從百分比變爲了'0到1'。 – 2012-11-20 10:47:24