Actionscript 3 需要使用组合框状态更改更改文本的帮助吗
我有一个文本框和一个组合框 我希望这样,当有人更改组合框值时,文本字段中的文本应该更改Actionscript 3 需要使用组合框状态更改更改文本的帮助吗,actionscript-3,combobox,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
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;
}
试试这个:
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,您应该使用绑定。我认为您应该使用selectedIndex
priceText.text =event_obj.target.selectedIndex.data;
或
编辑:嗯,我再想一想……你可能想对了,只是
你也可以试着这样做吗
comboFar.addEventListener(Event.CHANGE,testFar());
function testFar(e:Event):void {
priceText.text =event_obj.target.selectedItem.data;
}
在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
}
Iget此错误1136:参数数量不正确。预期1。1067:将void类型的值隐式强制为不相关的类型函数。太好了,很高兴我能帮上忙。以上哪项建议有效?虽然此答案中的前两项建议是正确的,但代码中的问题是因为addEventListener需要对回调函数的引用。看,无限的回答明白我的意思。
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
}