2011-09-08 59 views
1

我想用e自己的圖像替換標準的柔性條形圖表欄。這工作通過嵌入圖像和設置爲位圖填充。但是,即使我在嵌入時應用9切片縮放,這些圖像也不會很好地縮放。9切片縮放不適用於圖表填充

[Embed source="bar.png", scaleGridRight="721", scaleGridLeft="15", scaleGridTop="1", scaleGridBottom="90")]

[Bindable]

public var bar:Class;

和施加時

var x:BitmapFill = new BitmapFill();

x.source = bar;

series1.setStyle("fill", x);

9切片縮放選項被忽略。我不知道如何解決這個問題。

將相同的嵌入式圖像應用於標準圖像容器時需要注意的一點是,它尊重縮放選項。

回答

2

scale9GridGraphics.beginBitmapFill()方法中使用位圖時不起作用。

其中一個解決方案是創建一個BitmapFill子類,它可以使用它。 Here is the FXP with solution這裏是它如何工作的:

<s:Application ...> 

    <fx:Script> 
    <![CDATA[ 

     [Bindable] 
     [Embed(source="sample.png", scaleGridTop="30", scaleGridLeft="7", 
      scaleGridRight="384", scaleGridBottom="206")] 
     private var sample:Class; 

    ]]> 
    </fx:Script> 

    <s:Group left="0" right="0" top="0" bottom="0"> 
     <s:Rect left="0" right="0" top="0" bottom="0"> 
      <s:fill> 
       <local:BitmapFillScale9Grid source="{sample}"/> 
      </s:fill> 
     </s:Rect> 
    </s:Group> 

</s:Application> 

解決方案基於bent.googlecode.com

+0

哇!這很好用!非常感謝Maxim! –

+0

我注意到的一個小問題是,它不支持透明圖像。爲了解決這個問題,你可以修改line ** 51 **看起來像這樣 'bitmapData = new BitmapData(displayObject.width,displayObject.height,true,0x00CCCCCC);' –

+0

當然,這是一個調試錯字。 –