我一直在尝试使用UIComponent绘制一系列点:
var line : UIComponent = new UIComponent();
...
line.graphics.lineTo(renderPoint.x, renderPoint.y);
然后使用以下内容更新mainContainer
Canvas
对象。
mainContainer.addChild(line);
mainContainer在MXML中表示为:
<mx:Panel x="270" y="10" width="690" height="680" id="mainContainerPanel">
<mx:Canvas width="690" height="680" initialize="onInit()" id="canvas">
<mx:Script>
protected function onInit():void
{
spiro = new Spirograph(canvas);
}
</mx:Script>
</mx:Canvas>
</mx:Panel>
请注意
我正在使用事件Event.ENTER_FRAME
来执行drawLine()
并且它遍历数组以每次执行绘图:
for (var j:int = 0; j < _segment.length; j++)
{
renderPoint = _segment[j];
line.graphics.lineTo(renderPoint.x, renderPoint.y);
}
mainContainer.addChild(line);
问题在于,虽然我有所有renderPoint
段等。该行永远不会被绘制或永远不会被显示。我认为这可能是因为某些Flex事情并不那么明显。
我试图不使用此处的所有代码以提高可读性,希望描述简单明了。
答案 0 :(得分:1)
首先,我不确定您的代码是否是来自ActionScript代码的真正复制粘贴。字段样式声明来自Java或C#,但不来自AS。在UIComponent line
行上编译错误了吗?
其次,Script
的{{1}}块。您不应将其放在MXML组件中的嵌套声明中,而应放在组件根节点的子项中。最好在CDATA块中的Panel
块中包围代码。
在Script
中绘图怎么样?我建议您为其分配UIComponent
和width
值。