如何在Flex MXML文件中绘制圆圈?

Ang*_*ine 3 graphics geometry flex3

在我的MXML文件中,我有一个带有三个vbox的标签导航器.

<mx:TabNavigator width="624" height="100%">
        <mx:VBox label="Currents Quote" 
            width="100%">            
        </mx:VBox>
        <mx:VBox label="Quote Comparison" 
            width="100%">              
        </mx:VBox>
        <mx:VBox label="Reports" 
            width="100%">            
        </mx:VBox>      
</mx:TabNavigator>
Run Code Online (Sandbox Code Playgroud)

在VBox"当前报价"中,我想要绘制一个圆圈.我怎样才能实现它?

Sim*_*mon 5

没有定义MXML圈,因此您必须自己创建一个圈控件,然后将其包含在MXML中.

package mypackage
{
    class MyCircle extends UIComponent
    {
        public var x:int;
        public var y:int;
        public var radius:int;

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            graphics.drawCircle(x, y, radius);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在你的MXML中你可以使用你的自定义控件,如果你声明一个命名空间在你包含控件的顶部引用它...

<mx:VBox label="Currents Quote" width="100%">
    <mycontrols:MyCircle x="30" y="30" radius="30"/>
</mx:VBox>
Run Code Online (Sandbox Code Playgroud)

上面的代码被输入StackOverflow编辑器,所以检查它是否有效!

在Web上有很多帮助来扩展UIComponent和Sprite.Adobe文档非常全面.

编辑:将控件作为命名空间包含在封闭控件或应用程序中

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:mycontrols="mypackage.*" >
<mx:Script>
Run Code Online (Sandbox Code Playgroud)

HTH