如何应用渐变是flex?和角半径

时间:2009-06-08 07:08:46

标签: flex

我想知道如何在flex中应用渐变和圆角半径。

css是唯一的方法吗?我的意思是我想使用更多的flex属性来实现这一目标

有人可以为它提供样本类或代码吗?

由于

1 个答案:

答案 0 :(得分:0)

首先,正如您所提到的,可以通过CS(header-colorsbackground-gradient-colorshighlight-alphas等)自定义这些属性。

其次,您可以使用Flash绘图API在自定义(或扩展)组件中创建自己的形状,但这是一个更棘手的任务:

package test
{
import mx.core.UIComponent;
import flash.display.Graphics;
import flash.display.GradientType;

public class DrawingTest extends UIComponent
{
    public function DrawingTest()
    {
        super();
    }

    override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void
    {
        // you'll want to track the actual changes and redraw only in case if width, height or some other
        // significant property changes
        trace(unscaledWidth, unscaledHeight);
        var g:Graphics = graphics;
        // it's likely you want to make roundRadius and gradient parameters as styles of the component
        // or at least it's parameters.
        var roundRadius:Number = 30;
        g.clear();
        g.beginGradientFill(GradientType.LINEAR, [0x0, 0xFFFFFF], [0.5, 0.7], [0, 255]);
        g.drawRoundRect(0, 0, unscaledWidth, unscaledHeight, roundRadius, roundRadius);
        g.endFill();
    }

}
}

用法(将xmlns:test="test.*"添加到顶级组件属性)

<test:DrawingTest width="250" height="400" />

最好查看Graphics class documentation以获取更多信息: