apache-flex Flex如何在actionscript中创建〈mx:XML

wljmcqd8  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(243)

我和大伙儿都提前道谢了。
我已经找到了一种方法来创建一个可滚动的图表在这个页面: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中构建它,一切都可以正常工作...如果我在init中动态构建它当图表显示列而不显示滚动条时,即使对象超过了视口可以显示的范围。。而且我意识到这是代码的一个bug,因为如果我调整页面大小,滚动条就会出现!!有没有人用过这个例子,并理解为什么应用程序是这样工作的?
多谢了

z9gpfhce

z9gpfhce1#

非常感谢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.事件,调用updateDisplayList(x:Number,y:Number)方法或修改插件代码..
我希望这能为那些会有同样问题的人保存时间。再见

相关问题