尝试在Flex4 / AS3中将Rectangle绘制到自定义容器

时间:2010-04-01 07:08:09

标签: flex actionscript-3 drawing flex4

以下是我到目前为止的代码。现在我只想让它画一个正方形并让它出现。现在当我点击MXML中定义的区域为<components:PaintArea width="100%" height="100%" id="paint-a"></PaintArea>时,它什么也没有显示;但是,actionlistener会被触发,并且元素正在添加到组中。不确定究竟发生了什么......也许是因为某些原因它不认为该元素是可绘制的?无论如何感谢你的帮助!

public class PaintArea extends SkinnableContainer
{
    private var canvas:Group;

    public function PaintArea()
    {
        super();
        canvas = new Group();
        canvas.clipAndEnableScrolling = true;
        canvas.percentHeight = 100;
        canvas.percentWidth = 100;
        canvas.addEventListener(MouseEvent.MOUSE_UP,drawRectangle);
        this.addElement(canvas);
    }

    private function drawRectangle(e:MouseEvent):void{
        var r:Rect = new Rect();
        r.fill = new SolidColor(0x00ff00,.5);
        canvas.addElement(r);
    }
}

2 个答案:

答案 0 :(得分:4)

您应该设置矩形width的{​​{1}}和height

答案 1 :(得分:0)

你也可以使用BorderContainer(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/BorderContainer.html) - 它是一个带有可设置边框和填充的SkinnableContainer