我已经创建了一个TileList实例,并且还需要更改出现在电影剪辑中的文本字段的alpha。如何访问TileList内部的电影页,以便更新文本alpha?
var backgroundList:TileList = new TileList();
// Add four images to the TileList instance
backgroundList.addItem({source:"bg1_mc"});
backgroundList.addItem({source:"bg2_mc"});
backgroundList.addItem({source:"bg3_mc"});
backgroundList.addItem({source:"bg4_mc"});
backgroundList.addItem({source:"bg5_mc"});
backgroundList.addItem({source:"bg6_mc"});
backgroundList.addItem({source:"bg7_mc"});
backgroundList.addItem({source:"bg8_mc"});
backgroundList.addItem({source:"bg9_mc"});
backgroundList.addItem({source:"bg10_mc"});
// Set scroll bar direction
backgroundList.direction = ScrollBarDirection.HORIZONTAL;
preview_mc.addChild(backgroundList);这样做是行不通的:
preview_mc.backgroundList.bg1_mc.text_txt.alpha = 0;这样做是行不通的:
preview_mc.backgroundList[1].text_txt.alpha = 0;这样做是行不通的:
var foo=backgroundList.getItemAt(1).source;
foo.text_txt.alpha = 0;我真的很茫然。4小时以来,我一直在到处寻找解决方案,而TileList组件的文档很少。
发布于 2014-03-05 22:21:49
不幸的是,似乎没有访问TileList内容的方法。
当您使用getItemAt时,您要访问的实际上是使用addItem添加的Object。
因此,当您调用backgroundList.getItemAt(1).source时,返回的只是String "bg2_mc“,它只是库符号的链接标识符,而不是添加到显示列表中的符号的实例。
不仅在API中没有办法做到这一点,甚至遍历TileList的整个显示列表也没有找到任何答案:
[object ScrollBar]
[object BaseButton]
[object LabelButton]
[object TextField]
[object BaseButton]
[object BaseButton]
[object ScrollBar]
[object BaseButton]
[object LabelButton]
[object TextField]
[object BaseButton]
[object BaseButton]
[object Sprite]
[object Sprite]添加的MovieClips似乎没有任何痕迹。
这表明,TileList由两个ScrollBar实例和一个Sprite实例组成,Sprite有一个子Sprite,没有更多的子级。
https://stackoverflow.com/questions/22185382
复制相似问题