9-масштабное масштабирование не работает для заливки диаграммы - PullRequest
1 голос
/ 08 сентября 2011

Я хотел е заменить стандартные столбцы гибкой гистограммы своим собственным изображением.Это работало, внедряя изображение и устанавливая как растровое изображение.однако эти изображения плохо масштабируются, даже если я применил 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 параметров масштабирования среза игнорируются.Я не знаю, как решить эту проблему.

При применении одного и того же внедренного изображения к стандартному контейнеру изображения следует учитывать одну вещь: учитываются параметры масштабирования.

1 Ответ

2 голосов
/ 08 сентября 2011

scale9Grid не работает, когда в методе Graphics.beginBitmapFill() используется растровое изображение.

Одним из решений является создание подкласса BitmapFill, который будет работать с этим. Вот FXP с решением и вот как это работает:

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

...