2011-02-28 45 views
0

我的JSON数据文件ISE data.txt中变化的开始和结束的JSON的Flex线型图数据与滑块

[ 
    { 
     "sayim":"1", 
     "x":"400", 
     "y":"5", 
     "z":"-6" 

    }, 

    { 
     "sayim":"2", 
     "x":"4", 
     "y":"-40", 
     "z":"700" 
    }, 

    { 
     "sayim":"3", 
     "x":"5", 
     "y":"-5", 
     "z":"500" 
    }, 

    { 
     "sayim":"4", 
     "x":"1400", 
     "y":"50", 
     "z":"-6" 
    }, 

    { 
     "sayim":"5", 
     "x":"4", 
     "y":"5", 
     "z":"6" 
    } 
] 

和我的目标ISE创建一个滑块,可以改变开始和图形的结束,它是就像这个website

中的图6所示,这里是MXML代码;

. 
          .. 
          ... 
          jsonDataArray = JSON.decode(urlLoader.data);  
      proceed(); 
      } 
     private function proceed():void 
      { 

       dgg.dataProvider = jsonDataArray; 
      } 

     ]]> 
    </mx:Script> 
<mx:HSlider minimum="1" maximum="30" id="daySlider" snapInterval="1" thumbCount="2" values="[1,30]" /> 
    <mx:LineChart id="dgg" width="1000" height="500" horizontalCenter="0" > 
     <mx:series> 
    <mx:LineSeries xField="sayim" yField="x" displayName="X Bileşeni" /> 
    <mx:LineSeries xField="sayim" yField="y" displayName="Y Bileşeni" /> 
    <mx:LineSeries xField="sayim" yField="z" displayName="Z Bileşeni" /> 
     </mx:series> 
    </mx:LineChart> 
    <mx:Legend dataProvider="{dgg}" /> 

的问题是线型图“数据提供程序”的定义,我写了这个代码,但它仍然没有工作,

dataProvider="{dgg(sayim>=daySlider.values[0] && sayim<=daySlider.values[1])}" 

什么是控制与滑块的线型图正确的代码。

回答

0

你在这里混合你的隐喻。

在那篇文章中,他使用EcmaScript For Xml(E4X)将XML查询绑定到dataProvider。该行中的“点”非常重要,因为它假定了一个松散的XML树。它也使用day上的查询语法,只能用XML对象完成。因此,如果stockData属于数据类型XML,则以下绑定才有效。

dataProvider="{stockData..day.(num >= daySlider.value)}" 

但是,在您的情况下,您的数据是JSON,因此您的对象不是以上述查询的形式工作。

此外,要设置你的dataProvider调用一个函数dggdggLineChart而不是功能。

就您而言,我会建议将您的数据打包到ArrayCollection中,并使用filterFunction来定义如何过滤该数据。然后,直接绑定到ArrayCollection,并修改refresh()继续的过滤功能。你可以在这里看到一个这样做的例子:http://www.flex-blog.com/arraycollection-filter-example/

祝你好运