在Flex中继承ProgrammaticSkin类自定义皮肤

通过自定义类的方式创建皮肤,控制性更强,占用的内存更少。
ProgrammaticSkin类是外观元素的基类,它们通过编程方式来绘制自身。
关于ProgrammaticSkin类的更多信息,猛击这里:
http://www.airia.cn/ActionScript3API/livedocs/mx/skins/ProgrammaticSkin.html

自定义类

package skins
{
    import flash.display.GradientType;
    import flash.display.Graphics;

    import mx.skins.ProgrammaticSkin;

    public class CustomBG extends ProgrammaticSkin
    {

        public function CustomBG()
        {
            super();
        }

        override protected function updateDisplayList(w:Number, h:Number):void
        {
            super.updateDisplayList(w, h);

            var g:Graphics = graphics;
            var fillColors:Array = [0x191919,0x262626,0x191919];
            var fillAlphas:Array = [1.0,1.0,1.0];
            var fillRatios:Array = [0,127,255]

            g.clear();

            drawRoundRect(0, 0, w, h, 0, fillColors, fillAlphas,
                          horizontalGradientMatrix(0, 0, w, h), GradientType.LINEAR,fillRatios );
        }

        override public function get measuredWidth():Number
        {
            return 8;
        }

        override public function get measuredHeight():Number
        {
            return 8;
        }
    }

}

在CSS中使用ClassReference调用自定义类

.customBg
{
backgroundSize: “100%”;
backgroundImage: ClassReference(“skins.CustomBG”);
}

评论(1)

  1. menglinxi
    Posted 2010年01月5日 at 18:42 | Permalink

    用这种方法做的css,无法编译成 swf 的吧……

发表评论

Your email is never shared. Required fields are marked *

*
*