我已经创建了TileList的一个实例,并且需要更改影片剪辑中显示的文本字段的alpha。如何访问TileList内的movieclip,以便更新文本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组件的记录很少。
答案 0 :(得分:0)
不幸的是,似乎没有一种方法可以访问TileList
的内容。
使用getItemAt
时访问的内容实际上是您使用Object
添加的addItem
。
因此,当您致电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]
似乎没有添加任何MovieClip的痕迹。
这告诉我们TileList
由ScrollBar
和Sprite
的2个实例组成,Sprite
只有一个子Sprite
没有其他孩子了。