Прежде всего, как вы упомянули, эти свойства можно настроить с помощью CS (header-colors
, background-gradient-colors
, highlight-alphas
и т. Д.)
Во-вторых, вы можете использовать API рисования Flash для создания собственных фигур в пользовательских (или расширенных) компонентах, но это гораздо более сложная задача:
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" />
Хорошо взглянуть на документацию по классу графики для получения дополнительной информации: