我有一个将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);
}
答案 0 :(得分:2)
看起来你要做的事情永远不会奏效。
变量lineChartContainer
是一个精灵。
Flex组件(如Image
控件)不能作为非Flex组件的父级。因此,虽然它是完全合法的AS3代码:
lineChartContainer.addChild(graphic)
Flex组件不会渲染任何内容。 Flex组件具有“生命周期”,组件需要经历生命周期的迭代才能实际呈现某些内容。但是,由于Image
控件被添加到Sprite
,Image
组件的生命周期永远不会开始。
您在问题标题中提到Canvas
。尝试将Image
组件添加到Canvas
,VBox
,HBox
,Group
,VGroup
,HGroup
或其他Flex容器类。