Синтаксис массива для заполнения Flash ComboBox - PullRequest
0 голосов
/ 31 июля 2011

У меня есть массив, который выглядит следующим образом:

(languageArray[i].languageName);  //e.g. "French"
(languageArray[i].languageCode);  //e.g. "fre"

Я пытаюсь заполнить этот массив массивом данных fl.controls.ComboBox. Что я хочу сделать, это установить поле метки, как показано в документации:

myComboBox.dataProvider = dp;
myComboBox.labelField = "firstName";

Для моего кода:

myComboBox.dataProvider = dp;
myComboBox.labelField = languageName;
myComboBox.data = languageCode;

Другими словами, я хочу, чтобы имя отображалось, а «данные» были кодом, который будет вызываться при нажатии на элемент. Но labelField - это не то же самое, что «французский». Как создать два поля в массиве, чтобы я мог обозначить первое как labelField, а второе - как данные?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 июля 2011

Как ответил @Jens,

myComboBox.labelField = "languageName";
myComboBox.dataField = "languageCode";

Должно исправить это. Свойства labelField и data ищут строку для последующего использования для ссылки на свойство объекта.

Без кавычек вы говорите ему искать в будущем свойство объекта (независимо от того, какое значение languageName оценивает в этом контексте). (IE: если languageName оценивается как "Class 0xAB12CB00" или подобный бесполезный toString в этом контексте, он попытается найти объект ["Class 0xAB12CB00"] и использовать его в качестве labelField).

2 голосов
/ 31 июля 2011
myComboBox.labelField = "languageName";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...