我想知道如何在flex中应用渐变和圆角半径。
css是唯一的方法吗?我的意思是我想使用更多的flex属性来实现这一目标
有人可以为它提供样本类或代码吗?
由于
答案 0 :(得分:0)
首先,正如您所提到的,可以通过CS(header-colors
,background-gradient-colors
,highlight-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以获取更多信息: