Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   mx: series (http://www.flasher.ru/forum/showthread.php?t=139359)

JunkieIII 29.04.2010 01:20

mx: series
 
всем привет
Начал переделывать свой проект, и изменил структуру своего ArrayCollection:

год Январь Февраль Март
1996 45.4 23.7 54.1
1997 45 12.1 15.9
1998 12 56 11

т.е счас ArrayCollection: (Year: 1996, Jan: 45.4, Feb:23.7, Mar:54.1)

вопрос, как начертить график. если указать yField="Jan" чертит по месяцам
нужно чтобы чертило по годам?

раньше было ArrayCollection: (Month: Jan, 1996: 45.4, 1997:23.7, 1998:54.1
Month: Feb, 1996 23.7, 1997: 12.1 )

Месяц 1996 1997 1998
Январь 45.4 45 12
Февраль 23.7 12.1 56

указывал в yField="1996" и чертило за весь год


спасибо

veles2008 29.04.2010 23:44

а если написать yField="Year"?

JunkieIII 30.04.2010 03:17

неа, вообще ничего не выводит(((

veles2008 30.04.2010 20:15

код в студию

JunkieIII 01.05.2010 00:46

такс
Код:

public function LoadXML():void {
        var file:File = File.documentsDirectory.resolvePath("spogivanya.xml");
            var fileStream:FileStream = new FileStream();
            fileStream.open(file, FileMode.READ);
            xmlSP1 = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
              fileStream.close();
              AddArray();
    }
  // ---- **************************** ---   
    public function AddArray():void {
           
              var mIndex:int = 0;
              var yIndex:int = 0;
            var mIndexMax:int = xmlSP1.child("year")[0].child("Month").length();
              dataSPtt = new ArrayCollection();
       
           
            for (var yIndex = 0; yIndex < xmlSP1.child("year").length(); yIndex++) {
                    var obj:Object = new Object();
                    obj.Year = xmlSP1.year[yIndex].@["value"];
                    dataSPtt.addItem(obj);
            }
           
            for (var mIndex = 0; mIndex < mIndexMax; mIndex++) {
                    for (var yIndex = 0; yIndex < xmlSP1.child("year").length(); yIndex++) {
                            var name:String = xmlSP1.year[yIndex].Month[mIndex].@["name"];
                            dataSPtt[yIndex][name] = xmlSP1.year[yIndex].Month[mIndex];
                      }
            }

Сам ХМЛ файл имеет вид:
Код:

<?xml version="1.0" encoding="utf-8"?>

<spogivanya>
        <year value="1996">
                <Month name="Jan">177.8</Month>
                <Month name="Feb">391.1</Month>
                <Month name="Mar">751.9</Month>
                <Month name="Apr">477.3</Month>
                <Month name="May">347.5</Month>
                <Month name="Jun">385.6</Month>
                <Month name="Jul">356.6</Month>
                <Month name="Aug">347.5</Month>
                <Month name="Sep">389.3</Month>
                <Month name="Oct">425.0</Month>
                <Month name="Nov">393.6</Month>
                <Month name="Dec">354.3</Month>
        </year>
        <year value="1997">
                <Month name="Jan"></Month>
                <Month name="Feb">313.7</Month>
                <Month name="Mar">393.1</Month>
                <Month name="Apr">335.0</Month>
                <Month name="May">355.0</Month>
                <Month name="Jun">452.0</Month>
                <Month name="Jul">452.0</Month>
                <Month name="Aug">433.2</Month>
                <Month name="Sep">458.8</Month>
                <Month name="Oct">516.0</Month>
                <Month name="Nov">486.0</Month>
                <Month name="Dec">408.0</Month>
        </year>
        <year value="1998">
                <Month name="Jan">227.4</Month>
                <Month name="Feb">444.0</Month>
                <Month name="Mar">443.1</Month>
                <Month name="Apr">470.1</Month>
                <Month name="May">315.5</Month>
                <Month name="Jun">472.3</Month>
                <Month name="Jul">545.0</Month>
                <Month name="Aug">545.2</Month>
                <Month name="Sep">514.5</Month>
                <Month name="Oct">516.0</Month>
                <Month name="Nov">512.8</Month>
                <Month name="Dec"></Month>
        </year>
</spogivanya>

пытаюсь пострить график так, как Вы и посоветовали(выше конечно же дата провайдер стоит = dataSPtt):
Код:

<mx:series>
                <mx:LineSeries displayName="Year" yField="Year" />
</mx:series>


veles2008 01.05.2010 10:15

Мне кажется вы имели ввиду так!
Код AS3:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
 
    <mx:Script>
        <![CDATA[
 
        import mx.collections.ArrayCollection;
 
        [Bindable]
        private var medalsAC:ArrayCollection = new ArrayCollection( [
            { YEAR: "1996", Jan:177, Feb:391, Mar:751 },
            { YEAR: "1997", Jan:177, Feb:391, Mar:751 },
            { YEAR: "1998", Jan:177, Feb:391, Mar:751 } ]);
        ]]>
    </mx:Script>
 
    <mx:Panel height="100%" width="100%" layout="horizontal">
 
 
 
        <mx:BarChart id="bar" height="100%" width="45%"
            paddingLeft="5" paddingRight="5"
            showDataTips="true" dataProvider="{medalsAC}">
 
            <mx:verticalAxis>
                <mx:CategoryAxis categoryField="YEAR"/>
            </mx:verticalAxis>
 
            <mx:series>
                <mx:BarSeries yField="YEAR" xField="Jan" displayName="Jan"/>
                <mx:BarSeries yField="YEAR" xField="Feb" displayName="Feb"/>
                <mx:BarSeries yField="YEAR" xField="Mar" displayName="Mar"/>
            </mx:series>
        </mx:BarChart>
 
 
    </mx:Panel>
</mx:Application>


JunkieIII 02.05.2010 15:23

1
 
Я строю :

Код AS3:

<mx:LineChart x="10" y="0" id="linechart1" width="900" height="392" dataProvider="{medalsAC}" showDataTips="true">
                <mx:backgroundElements>
                          <mx:GridLines direction="both"/>
                    </mx:backgroundElements>
 
                    <mx:series>
                        <mx:LineSeries displayName="Jan" yField="YEAR" xField="Jan" />
                        <mx:LineSeries displayName="Feb" yField="YEAR"  xField="Feb"/>
                        <mx:LineSeries displayName="Mar" yField="YEAR"  xField="Mar"/>
 
                </mx:series>
                        </mx:LineChart>
        <mx:DataGrid id="myGrid" x="100" y="430" width="650" height="290" editable="true" dataProvider="{dataSPtt}">
                                      <mx:columns>
                                        <mx:DataGridColumn headerText="Рік" dataField="Year" />
                                          <mx:DataGridColumn headerText="Січень" dataField="Jan" />
                                          <mx:DataGridColumn headerText="Лютий" dataField="Feb" />
                                          <mx:DataGridColumn headerText="Березень" dataField="Mar" />
                                        </mx:columns>
        </mx:DataGrid>
<mx:Legend direction="vertical" dataProvider="{linechart1}" x="750" y="250"/>

но по прежнему ничего не строиться((((

etc 02.05.2010 15:26

JunkieIII, отредактируйте свои посты и оформите код тегами [code][/code] и [as3][/as3].

etc 02.05.2010 16:01

JunkieIII, мне не нужен от вас новый пост с оформленным кодом. Отредактируйте предыдущие, не заставляйте людей ломать глаза.

veles2008 02.05.2010 21:07

Где функция LoadXML() инициализируется???


Часовой пояс GMT +4, время: 23:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.