Я использую пример combocheck со следующего сайта:
http://www.carballares.es/en/arcadio/?p=220
Это очень полезный компонент и очень хорошо работает.
Теперь мне нужно установить свойство text этого поля со списком при запуске приложения с определенными значениями (которые определяются динамически в соответствии с некоторыми критериями). Проблема заключается в том, что, хотя у меня нет проблем с настройкой свойства text поля со списком во время запуска приложения, установка свойства при запуске, к сожалению, не дает никакого эффекта.
Например, я хочу установить для свойства text поля со списком значение «Bob» (который является одним из элементов в поставщике данных для поля со списком), и в поле со списком вызывается метод «set text». Выполнение пошагового выполнения показывает, что метод «set text» получает правильный элемент значения, но не устанавливает свойство _text.
Я пытался ничего не делать до "ApplicationComplete", но и радости нет.
Заранее благодарим за любую помощь или подсказки, которые вы можете предложить.
// Редактировать
Вот код (комбинация кода из приведенного выше URL-адреса и некоторых других изменений в нем). Однако, как я уже говорил выше, коды работают . Проблема в том, что он не работает при запуске приложения. Всякий раз, когда происходит событие и в результате вызывается setComboText, текст поля со списком устанавливается правильно.
private function onComboChecked(event:ComboCheckEvent):void {
var obj:Object=event.obj;
var index:int=selectedItems.getItemIndex(obj);
if (index==-1) {
selectedItems.addItem(obj);
} else {
selectedItems.removeItemAt(index);
}
setComboText();
dispatchEvent(new Event("valueCommit"));
dispatchEvent(new Event("addItem"));
}
public function setComboText():void {
if (selectedItems.length>1) {
// text='multiple'
//modified by samuel
var items:ArrayCollection = selectedItems;
var selItems:String = "";
for (var item:String in items)
{
if (items[item].label != "ALL" ) {
selItems = selItems + items[item].label + ",";
}
}
if (selItems.length > 0){
selItems = selItems.substr(0,selItems.length - 1);
}
text = selItems;
}
if (selectedItems.length==1) {
text=selectedItems.getItemAt(0)[labelField];
}
if (selectedItems.length<1) {
//modified by samuel
text="ALL";
//Alert.show("text is "+text);
}
}