访问AS3中TileList组件内的movieclip

时间:2014-03-04 23:27:08

标签: actionscript-3 flash components tilelist

我已经创建了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组件的记录很少。

1 个答案:

答案 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的痕迹。

这告诉我们TileListScrollBarSprite的2个实例组成,Sprite只有一个子Sprite没有其他孩子了。