使用模式填充Flex应用程序背景?

时间:2010-08-17 22:03:11

标签: flash actionscript-3 flex3

我们正试图通过在整个背景中重复模式来填充我们的Flex 3应用程序背景图像模式。

该模式是一个非常小的“项目符号”背景。

即使我们在CSS中指定了以下内容,Flex App似乎只是拉伸图像模式:

应用 {    background-gradient-colors:#ffffff,#fffffff;    颜色:#000000;    background-image:Embed(source =“../ assets / images / gray_bullet_background.png”);     background-repeat:重复;     背景位置:中心;     background-blend:multiply; ...

有谁知道我们在这里可能缺少什么?

非常感谢,

FortPointUIGuy

1 个答案:

答案 0 :(得分:4)

Flex不支持背景重复,因此为了做到这一点,你需要一个自定义皮肤,如下所示:

package view.skin
{
    import flash.display.Bitmap;
    import mx.skins.ProgrammaticSkin;

    public class RepeatingImageSkin extends ProgrammaticSkin
    {
        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            var cls:Object = getStyle("backgroundImage");
            var bmp:Bitmap = new cls();
            graphics.clear();
            graphics.beginBitmapFill(bmp.bitmapData);
            graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
        }
    }
}

然后,对于您的应用程序样式,您可以:

Application {
    background-image: Embed(source="../assets/images/gray_bullet_background.png");
    border-skin: ClassReference("view.skin.RepeatingImageSkin");
}