我可以将图像绘制到画布中吗?

时间:2012-07-31 16:04:40

标签: actionscript-3 flex

我有一个将Shape绘制成Sprite的函数。我想更改函数使用Image而不是Shape,但图像不会显示。我该怎么做才能让图像显示出来? lineChartContainer是Sprite。

function drawCircle(x:Number,y:Number):void{
                //var circle:Shape = new Shape();
                circle.graphics.beginFill(0xf1e500, 1);
                var lineThickness:int = 6;
                circle.graphics.drawCircle(x + (0), y - (0), lineThickness);
                circle.graphics.endFill();
                lineChartContainer.addChild(circle);
                var graphic:Image = new Image();
                graphic.source="images/grade.png";
                lineChartContainer.addChild(graphic);
            }

1 个答案:

答案 0 :(得分:2)

看起来你要做的事情永远不会奏效。

变量lineChartContainer是一个精灵。

Flex组件(如Image控件)不能作为非Flex组件的父级。因此,虽然它是完全合法的AS3代码:

lineChartContainer.addChild(graphic)

Flex组件不会渲染任何内容。 Flex组件具有“生命周期”,组件需要经历生命周期的迭代才能实际呈现某些内容。但是,由于Image控件被添加到SpriteImage组件的生命周期永远不会开始。

您在问题标题中提到Canvas。尝试将Image组件添加到CanvasVBoxHBoxGroupVGroupHGroup或其他Flex容器类。