0

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

4

1 回答 1

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]

似乎没有任何添加的 MovieClips 的痕迹。

这向我们展示了TileList由 和 的 2 个实例组成,并且ScrollBar有一个没有其他子级的子级。SpriteSpriteSprite

于 2014-03-05T22:21:49.053 回答