1

我有一个运行时生成的位图数据,并想在我的 flex Skin 类中为其应用 scaleninegrid。我做了这样的事情:

  <fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        [Embed(source="progressBarTrack.png")]
        private var host:Class;

        [Bindable]
        private var texture:BitmapData

        protected function skin1_preinitializeHandler(event:FlexEvent):void
        {
            //here is just an example,my bitmapdata will be retrieved by an other way.
                          texture = Bitmap(new host()).bitmapData;
        }

    ]]>
</fx:Script>
<s:Graphic scaleGridBottom="11" scaleGridLeft="14" scaleGridRight="40" scaleGridTop="10">
    <s:Rect width="300" height="22">
        <s:fill>
            <s:BitmapFill source="{texture}"/>
        </s:fill>
    </s:Rect>
</s:Graphic>

但是,无论我是否设置宽度和高度,它都不起作用。我也尝试嵌入源图像,它起作用了,但是由于位图数据是运行时生成的,我无法像@embed 那样设置 scalenine .... .,scaleGridLeft.....

无论如何,是否允许我这样做或我做错了什么?我想在我破解源代码之前获得一些提示,并制作我自己的支持它的图形元素。

非常感谢!!!

4

1 回答 1

0

看看bytearray.org ScaleBitmap 类。它是一个开源类,它扩展了 BitmapData 以在运行时呈现 scale9 位图。

于 2015-10-12T06:18:58.153 回答