2013-04-21 39 views
0

我不确定是否有更好的方法来做到这一点,如果有请让我知道。但现在,我有一个名单中的组合框列表。AS3在影片剪辑中选择组合框

的组合框STU1,屋顶盒2,stu3,抽搐一路63,并在allStudents影片剪辑举行

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个组合框更新从相同的数据提供程序,

它们按字​​母顺序排序,

然后设置选择为每个学生(默认屋顶盒1应显示数据提供程序(0) ,屋顶盒2应显示数据提供程序(1),因为它是默认选择)

我得到的错误是:

场景1,图层“图层1”,第1帧,83号线1118:用值隐式强制静态类型flash.display:DisplayObject到可能不相关的类型fl.controls: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,所以你需要将它转换为一个组合框。

+0

这仍然不能解决问题:( – 2013-04-22 19:02:50

+0

嗯,让我澄清...它修复了这种...我现在得到一个新的错误:访问可能未定义的属性dataProvider通过引用与静态类型flash.display:DisplayObject,通过具有静态类型的引用调用可能未定义的方法getItemAt flash.display:DisplayObject,通过具有静态类型的引用可能未定义的属性selectedItem的访问flash.display:DisplayObject – 2013-04-22 19:05:28

+0

这不是一个正在进行的如果错误消失了,那就回答这个问题,如果你有其他错误或问题,请发表另外一个问题。 – prototypical 2013-04-22 19:08:37