2010-06-01 6 views
0

텍스트 상자 하나와 콤보 상자 하나가 있습니다.콤보 상자 상태 변경으로 텍스트를 변경하는 데 도움이 필요합니다.

누군가가 콤보 상자 값을 변경하면 텍스트 필드에서 텍스트가 변경되기를 바랍니다.

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; 

} 

답변

-1

내가 대신

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

또는

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

편집 selectedIndex의를 사용한다고 생각합니다 이것도?

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

고마워 친구, –

+0

위대한, 내가 도와 줄 수있어 다행. 위의 제안 중 어떤 것이 효과가 있습니까? – VoodooChild

+0

이 답변의 처음 두 제안은 정확하지만 코드의 문제는 addEventListener가 콜백 함수에 대한 참조를 필요로했기 때문입니다. 참조, 무한한 대답은 내 뜻을 참조하십시오. – catholicon

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 

을하지만 플렉스 경우 당신은 바인딩을 사용해야 제대로 동작하지 않습니다. 바로, 단지 당신도 일을 시도 할 수 흠 더 나는 그것에 대해 생각 ... 당신이 그것을 가지고 있습니다

+0

이 오류가 발생합니다. 1136 : 잘못된 인수 수입니다. 예상되는 1. 및 1067 : void 유형의 값을 관련없는 유형의 함수에 내재적으로 강제 변환합니다. –

2

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 
} 
관련 문제