Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   перевод Array в ArrayCollection (http://www.flasher.ru/forum/showthread.php?t=92963)

oCa 10.03.2007 21:58

перевод Array в ArrayCollection
 
Вопрос следующий: как мне перевести Array в ArrayCollection?
Имеется массив, который берется из внешних данных (из БД в частности). Этот массив имеет в качестве элементов названия других массивов.
Необходимо сделать обработку события т.о. чтобы при выборе RadioButton-ом менялся источник данных dataProvider у PieChart-а.
Эти источники как раз и есть те массивы, названия которых лежат в исходном массиве.
Проблема в том, что если брать просто массив, то его элементы не воспринимаются при смене dataProvider-а.
А если брать ArrayCollection, то всё нормально.
Поясню на примере:
Допустим есть два массива:
Код:

[Bindable]
    private var golos1:ArrayCollection = new ArrayCollection( [
    { data: 50,  legend: "Пять"},
    { data: 20,  legend: "Шесть"} ]);

[Bindable]
    public var radio:Array=[
      {name:"Первое", idvote: golos1},
      {name:"Второе", idvote: golos2}];

В массиве radio элементы idvote и есть ссылки на ArrayCollection типа golos1...golos4.
Есть ли способ перевода из Array в ArrayCollection? Или какой-нить вариант создания не Array а ArrayCollection,
но средствами PHP?
Частичный код:
Код:

<mx:PieChart id="candlestickchart" height="198" width="365" paddingRight="5" paddingLeft="5"
            showDataTips="true" dataProvider="{golos2}" >
          <mx:series>
                <mx:PieSeries 
                        field="data"  labelPosition="callout" nameField="legend" showDataEffect="{interpolateIn}">
                    <mx:calloutStroke>
                        <mx:Stroke weight="0" color="0x888888" alpha="1.0"/>
                    </mx:calloutStroke>
                    <mx:radialStroke>
                        <mx:Stroke weight="0" color="#FFFFFF" alpha="0.20"/>
                    </mx:radialStroke>
                    <mx:stroke>
                        <mx:Stroke color="0" alpha="0.20" weight="2"/>
                    </mx:stroke>
                </mx:PieSeries>
                </mx:series>
        </mx:PieChart>
    <mx:Repeater id="myrep" dataProvider="{radio}" startingIndex="0" >
            <mx:RadioButton label="{myrep.currentItem.name}" groupName="stocks"
        click="candlestickchart.dataProvider=event.currentTarget.getRepeaterItem().idvote;"/>                           
</mx:Repeater>


Nirth 11.03.2007 20:10

Код:

var myArray:Array = new Array(1,2,3,4,5);
var myCollection:ArrayCollection = new ArrayCollection(myArray);


oCa 12.03.2007 11:14

Огромное спасибо!
Всё работает


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

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