[英]Flex how to create a <mx:XML in actionscript
各位,谢谢大家。
我在此页面上找到了一种创建可滚动图表的方法: http : //www.connectedpixel.com/pubfiles/srcview/scrollchart/index.html
这是一个很好的解决方案,并且一切正常,但现在dataProvider存在问题:在页面示例中,数据提供程序直接嵌入在.mxml页面中:
<mx:XML xmlns="" id="myData">
<items>
<item year="1960" rain="92" />
<item year="1961" rain="192" />
<item year="1962" rain="32" />
<item year="1963" rain="52" />
<item year="1964" rain="112" />
</items>
</mx:XML>
显然,我需要动态地创建它,但我找不到解决此问题的方法...我尝试过:
var xmlObject:XML = <items></items>;
xmlObject.appendChild(<item year="1960" rain="92" />);
...
和其他类似但没有人合作。 通过上述方法,如果尝试将结果放入:
<mx:TextArea text="{xmlObject.children()}" />
即使
trace(xmlObject.children())
在.as内部。
伙计们,我来看看从发现示例的站点下载的代码。 我甚至可以将通用对象的ArrayCollection设置为我的columnChart的dataProvider,但是如果直接在.mxml中构建它,则一切正常...如果我在.it的init()方法中以动态方式构建它,则图表显示该列但是滚动条却不行,即使对象超出了视口可以显示的范围。我也意识到这是代码的错误,因为如果我调整页面大小,则会出现滚动条! 是否有人使用过该示例并理解了应用程序为何以这种方式工作?
非常感谢
非常感谢AmigaAbattoir的回复。.我调试了从发布在问题网站上的网站下载的插件,并且意识到甚至可以声明通用对象的ArrayCollection(例如:
<mx:ArrayCollection id="myData">
<mx:Object y1="3" y2="2" x="1" />
<mx:Object y1="4" y2="2" x="2" />
<mx:Object y1="5" y2="3" x="3" />
</mx:ArrayCollection>
)作为图表的dataProvider。问题是,在创建滚动条组件的类中,存在一种方法,该方法在加载.mxml之前执行以下指令:
IList list = _chart.dataProvider as IList;
和:
如果我在.mxml中声明ArrayCollection(或XML对象),则list
会得到增强
如果我在.as中声明ArrayCollection(或XML对象)(即使我在initialize()
方法或creationComplete()
方法中构建对象,或者即使我将eventListener
添加到ArrayCollection列表中也不会得到增强)
如果list
不增强list.size()
为0,则maxVisibileColumns
为8(默认值),并且不添加scrollBar组件。
有很多解决方案可以解决此问题(触发Resize.Event,调用updateDisplayList(x:Number,y:Number)方法或修改插件代码。)
我希望这可以为那些有同样问题的人节省时间。 再见
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.