2013-04-21 8 views
0

Я не уверен, есть ли лучший способ сделать это, и если есть, пожалуйста, дайте мне знать. Но сейчас у меня есть список комбинированных ящиков с именами в них.AS3, выбрав Combo Box внутри видеоклипа

Комбо коробки stu1, STU2, stu3, т.д. вплоть до 63 и провел в allStudents MovieClip

for(var i = 0; i < allStudents.length; i++) 
{ 
    var newTempStudent:ComboBox = allStudents.getChildAt(i); 

    newTempStudent.dataProvider.addItem({label: fullName, data:fullName}); 
    newTempStudent.getChildAt(i).dataProvider.sortOn("label"); 
    newTempStudent.getChildAt(i).selectedItem = allStudents.getChildAt(i).getItemAt(i); 

} 

в основном я пытаюсь:

получить все 63 комбо-боксы, чтобы обновить из того же DataProvider,

сортировки их по алфавиту,

затем установить выбранные для каждого студента (по умолчанию stu1 должен показывать DataProvider (0) , STU2 должен отображать DataProvider (1), как это выбор по умолчанию)

Ошибка я получаю:

Scene 1, Layer 'Layer 1', Frame 1, строка 83 1118: Неявное приведение значения с static type flash.display: DisplayObject для возможно несвязанного типа fl.controls: ComboBox.

Теперь я предполагаю, что получаю это, потому что он ищет клип, который является отображаемым объектом и выполняет команды combobox, но я не уверен, как это сделать сам по себе.

Первоначально я собирался сделать это с помощью dataGrid, но он стал слишком сложным, когда я пытался связать dataGrid с checkBoxes для посещения.

Любая помощь очень ценится!

ответ

0

Попробуйте этот код:

for(var i = 0; i < allStudents.length; i++) 
{ 
    var newTempStudent:ComboBox = allStudents.getChildAt(i) as ComboBox; 

    newTempStudent.dataProvider.addItem({label: fullName, data:fullName}); 
    newTempStudent.getChildAt(i).dataProvider.sortOn("label"); 
    newTempStudent.getChildAt(i).selectedItem = allStudents.getChildAt(i).getItemAt(i) as ComboBox; 

} 

getChildAt() возвращает DisplayObject, так что вам нужно, чтобы бросить его в ComboBox.

+0

Это, по-видимому, не устраняет проблему :( –

+0

Ну, позвольте мне исправить ... Он исправляет это ... Я получаю новую ошибку сейчас: доступ к возможно неопределенным данным свойстваProvider через ссылку с помощью static type flash.display: DisplayObject, вызов возможно неопределенного метода getItemAt через ссылку со статическим типом flash.display: DisplayObject, доступ к возможному неопределенному свойству selectedItem через ссылку со статическим типом flash.display: DisplayObject –

+0

Это не постоянный нить на всех ошибках/проблемах в вашей программе. У вас была неявная ошибка принуждения, и я сказал вам, как ее исправить. Если ошибка исчезла, это ответ на вопрос. Если у вас есть другая ошибка или проблема, отправьте другой вопрос. – prototypical

Смежные вопросы