Нужна помощь с изменением текста с изменением состояния в выпадающем списке - PullRequest
0 голосов
/ 01 июня 2010

У меня есть одно текстовое поле и один комбинированный список.

Я хочу, чтобы при изменении значения поля со списком текст в текстовом поле изменялся.

priceText - это имя текстового поля

Мой код ниже; это не работает:

var comboFar:ComboBox = new ComboBox();
addChild(comboFar);

var items2:Array = [
{label:"Arizona", data:"87.97"},
{label:"Colorado", data:"91.97"},
];

comboFar.dataProvider = new DataProvider(items2);

comboFar.addEventListener("change",testFar());

function testFar(event):void {

  priceText.text =event_obj.target.selectedItem.data;

}

Ответы [ 3 ]

2 голосов
/ 08 июля 2013

В addEventListener вы звоните testFunc(). Вместо этого вам нужно передать ссылку на функцию, как показано ниже:

import flash.events.Event;
comboFar.addItem({label:"Arizona", data:"87.97"});
comboFar.addItem({label:"Colorado", data:"91.97"});
comboFar.selectedIndex=0;
comboFar.addEventListener(Event.CHANGE,testFunc);
function testFunc(evt:Event):void {
    priceText.text =evt.target.selectedItem.data; // 87.97
    // or
    priceText.text =evt.target.selectedItem.label; // Arizona
}
0 голосов
/ 01 июня 2010

Я думаю, что вы должны использовать selectedIndex вместо

priceText.text =event_obj.target.selectedIndex.data;

или

priceText.text =event_obj.target.selectedItem.label;

edit: хм, больше я об этом думаю ... ты, может, и прав не могли бы вы тоже попробовать это сделать?

comboFar.addEventListener(Event.CHANGE,testFar());
function testFar(e:Event):void {
  priceText.text =event_obj.target.selectedItem.data;
}
0 голосов
/ 01 июня 2010

Попробуйте это:

priceText.text = (event_obj.target as ComboBox).selectedLabel;
//or
priceText.text = (event_obj.target as ComboBox).selectedItem.label; // replace "label" if there is another label field

Но вы должны использовать привязки, если это Flex.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...