Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Динамический ComboBox (http://www.flasher.ru/forum/showthread.php?t=183981)

Bukem 07.09.2012 12:05

Динамический ComboBox
 
Нужна помощь, создаю несколько комбобоксов, 1 статичный, остальные должны заполняться данными на основании выбора данных из первого комбобокса, вот такую штуку накалякал, но работает не так как надо...

Код AS3:

import fl.controls.ComboBox;
import fl.data.DataProvider;
import flash.net.navigateToURL;
 
var cmb_nameArr:Array = new Array(
    {label:"name1", data:"0"},
    {label:"name2", data:"0"}
);
 
var cmb_gostArr:Array = new Array(
{label:"1-1", data:"111"},
{label:"1-2", data:"111"}
);
var cmb_gostArr1:Array = new Array(
    {label:"2-1", data:"111"},
    {label:"2-2", data:"111"}
);
 
var cmb_name:ComboBox = new ComboBox();
cmb_name.dropdownWidth = 210;
cmb_name.width = 200;
cmb_name.move(5, 5);
cmb_name.prompt = "Выбрать элемент";
cmb_name.dataProvider = new DataProvider(cmb_nameArr);
cmb_name.addEventListener(Event.CHANGE, changeHandler);
cmb_name.addEventListener(Event.OPEN, openHandler);
addChild(cmb_name);
 
function changeHandler(event:Event):void
{
        var cmb_gost:ComboBox = new ComboBox();
        cmb_gost.dropdownWidth = 200;
        cmb_gost.width = 200;
        cmb_gost.move(215, 5);
        cmb_gost.prompt = "ГОСТ";
        if (cmb_name.selectedItem.label == "name1")
        {
                cmb_gost.dataProvider = new DataProvider(cmb_gostArr);
        }
        else if (cmb_name.selectedItem.label == "name2")
        {
                cmb_gost.dataProvider = new DataProvider(cmb_gostArr1);
        }
        else
        {
        }
        addChild(cmb_gost);
}


droopy 08.09.2012 11:25

Может так надо?
Код AS3:

var cmb_gost:ComboBox;
function changeHandler(event:Event):void
{
        if (!cmb_gost)
        {
            cmb_gost = new ComboBox();
            cmb_gost.dropdownWidth = 200;
            cmb_gost.width = 200;
            cmb_gost.move(215, 5);
            cmb_gost.prompt = "ГОСТ";
            addChild(cmb_gost);
      }
        if (cmb_name.selectedItem.label == "name1")
        {
                cmb_gost.dataProvider = new DataProvider(cmb_gostArr);
        }
        else if (cmb_name.selectedItem.label == "name2")
        {
                cmb_gost.dataProvider = new DataProvider(cmb_gostArr1);
        }
        else
        {
        }
}

А то у вас на каждый CHANGE создается новый комбобокс и помещается в одно и то же место.

Bukem 09.09.2012 10:15

Спасибо!!! сам не допер (


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

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