如何创建一个<mx:xml in =“”actionscript =“”

时间:2017-07-21 17:02:33

标签: xml flex

=“”

我们并提前感谢所有人。

我找到了一种在此页面创建可滚动图表的方法: 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内部工作。

我们,我看看从我找到示例的网站下载的代码。我甚至可以为我的columnChart设置一个通用Object的ArrayCollection作为dataProvider,但是如果我直接在我的.mxml中构建它,一切正常...如果我在我的.as的init()方法中以dinamycally方式构建它,则图表显示列但不是滚动条,即使对象超过视口可以显示..而且我意识到这是代码的错误,因为如果我调整页面大小滚动条出现!!是否有人使用过该示例并了解应用程序为何如此工作?

非常感谢

1 个答案:

答案 0 :(得分:0)

非常感谢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()方法构建对象,或者即使我添加了

  • 未对ArrayCollection列表eventListener进行增强

如果list未加强list.size()为0,maxVisibileColumns为8(默认值)且未添加scrollBar组件..

有很多解决方案可以解决这个问题(触发Resize.Event,调用updateDisplayList(x:Number,y:Number)方法或修改插件代码..

我希望这可以为那些遇到同样问题的人节省时间。 再见