需要有关使用组合框状态更改来更改文本的帮助

时间:2010-06-01 02:59:34

标签: actionscript-3 combobox

我有一个文本框和一个组合框。

我希望如此,当有人更改组合框值时,文本应在文本字段中更改。

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 个答案:

答案 0 :(得分:2)

在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
}

答案 1 :(得分:0)

试试这个:

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,你应该使用绑定。

答案 2 :(得分:-1)

我认为您应该使用selectedIndex

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

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

编辑:嗯更多我想一想......你可能也是对的,只是 你也可以尝试这样做吗?

comboFar.addEventListener(Event.CHANGE,testFar());
function testFar(e:Event):void {
  priceText.text =event_obj.target.selectedItem.data;
}