Apache flex 如何在Flex4.5.1中绘制矩形?

Apache flex 如何在Flex4.5.1中绘制矩形?,apache-flex,actionscript,Apache Flex,Actionscript,基本上这是行不通的。我用这个问题来改进——仍然没有什么。 为什么不使用UIComponent.graphics绘图功能,而不是创建三个不同的对象 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"

基本上这是行不通的。我用这个问题来改进——仍然没有什么。
为什么不使用UIComponent.graphics绘图功能,而不是创建三个不同的对象

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="640" minHeight="480">
    <s:layout>
        <s:BasicLayout/>
    </s:layout>
    <fx:Script>
        <![CDATA[
            import flash.display.Shape;
            import flash.display.Sprite;

            import mx.core.UIComponent;

            import spark.core.SpriteVisualElement;
            private var rectangle:Sprite = new Sprite();
            private var insterter:UIComponent = new UIComponent();
            private var theme:SpriteVisualElement = new SpriteVisualElement();
            private function main():void
            {

                rectangle.graphics.lineStyle(1,0x0000FF,1.0);
                rectangle.graphics.drawRect(0,0,200,50);
                theme.addChild(rectangle);
                this.addElement(theme);  //tried canvas.addElement
                const WIDTH:int = 20;
                const HEIGHT:int = 20;

                /*var grid:Array = new Array();
                for(var y:int = 0; y < HEIGHT; y++) {
                    var row:Array = new Array();
                    for (var x:int = 0; x < WIDTH; x++) {
                        row.push(/*random object*//*);
                    }
                /   grid.push(row);
                            }*/

            }

        ]]>
    </fx:Script>
    <!--<spark:Canvas id="canvas" x="34" y="10" width="90%" height="90%" textAlign="center">

    </mx:Canvas>-->
</s:Application>

仍然不起作用。我使用的是flex project而不是纯actionscript。请确保通过在应用程序MXML标记中添加creationComplete=main属性来调用主函数。当然,我写的代码如果放在一个被调用的函数中,应该可以工作。噢,噢,PS…..该死的。很抱歉是的,现在很好用。我忘了fx需要creationComplete=main,与mx相同。Flex 4有一个可以从MXML或as使用的Rect组件。不同的矩形是否会合成到一个DisplayObject中,取决于附加到它们的交互方式。
var uic:UIComponent = new UIComponent();

this.addElement(uic);

uic.width = uic.height = 50;
uic.graphics.lineStyle(1,0x000000);
uic.graphics.drawRect(0,0,50,50);