在Class中的使用Accordion的child Symbol问题

chat Union项目中,使用Accordion组件显示主持人列表和客人列表,这个组件放在一个Movie Clip中,实例名称为actorListac。这个Movie Clip关联ActorList类。它将2个List组件作为自己的child Symbol。一个实例名称为emceelist,一个实例名称为roomlist。

ActorList类的主要内容如下:

 1 import mx.controls.List;
 2  import mx.containers.Accordion;
 3 class ActorList {
 4	private var actorListac:Accordion;
 5	function ActorList(){
 6	}
 7	private function onLoad(){
 8		var accw = actorListac.width-2;
 9		var acch = actorListac.height-22*2;	//每个标题22像素高,共两2个标题
10		actorListac.roomlist.setSize(accw,acch);
11		actorListac.emceelist.setSize(accw,acch);
12	}
13	public function reFresh(arr:Array, at:String):Void{
14		//at:要刷新的列表类型,值为emcee或room
15		actorListac[at+"list"].removeAll();
16		for(var i in arr){
17			actorListac[at+"list"].addItem(arr[i]);
18		}
19	}
20}

编译的时候出现了错误:

错误 第 26 行: 没有名为'roomlist'的属性。 actorListac.roomlist.setSize(accw,acch);

这是很让人费解的。因为使用调试器查看程序结构的时候,明明是可以看到roomlist是处于actorListac之中,但却不能够访问?

为了确定Accordion组件确实可以使用这种访问方式,我做了一个简单程序进行测试:

1var accw = actorListac.width-2;
2var acch = actorListac.height-22*2;	//每个标题22像素高,共两2个标题
3actorListac.list1.setSize(accw,acch);
4actorListac.list2.setSize(accw,acch);

仅就这个程序而言,我的访问方式没有一点问题。

无奈改了一种访问方式,将 actorListac.roomlist.setSize(accw,acch); 改为了 actorListac["roomlist"].setSize(accw,acch); ,没想到居然就可以了!