0

我有一个将形状绘制成精灵的函数。我想更改函数以使用图像而不是形状,但图像不会显示。我该怎么做才能使图像显示?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);
            }
4

1 回答 1

2

看起来你正在尝试做的事情永远不会奏效。

变量lineChartContainer是 Sprite。

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

lineChartContainer.addChild(graphic)

Flex 组件不会渲染任何东西。Flex 组件有一个“生命周期”,组件需要经过生命周期的迭代才能真正呈现某些内容。但是由于Image控件被添加到组件Sprite的生命周期中,所以Image永远不会启动。

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

于 2012-07-31T20:24:55.673 回答