2010年7月2日金曜日

Flex4のFillでフルスクリーンだとグラデーションできない場合があると知る

Flex4のFillで、フルスクリーンだとグラデーションが正しく描画できない場合があることがわかった。

ノーマルスクリーン状態では正常にグラデーション描画されるものが、フルスクリーン状態では描画されない場合がある。

描画したいグラデーションはこれ。

<s:Rect width="100" height="4" radiusX="2" radiusY="2">
  <s:fill>
    <s:LinearGradient rotation="90">
      <s:entries>
        <s:GradientEntry color="#0054C1" ratio="0.0"/>
        <s:GradientEntry color="#002049" ratio="0.75"/>
      </s:entries>
    </s:LinearGradient>
  </s:fill>
</s:Rect>

下の画像はどちらもフルスクリーン時に同じグラデーションを描画した場合のスクリーンショット。違いは高さが4pxか5pxか(^^);

これが4px。


これが5px。


つまり、フルスクリーン時には5px以上でないとグラデーション描画されないわけだ。なぜ?

もう一つ奇妙なことを付け加える。これはMacとVistaで確認した動作で、XPではフルスクリーン時にも正常に描画された。もちろん全て同じバージョンのFPを使用。ハードウェアの違い?わからない・・・