Доступ к мувиклипу внутри компонента TileList в AS3

Я создал экземпляр TileList, и мне также нужно изменить альфа текстового поля, которое появляется внутри клипов. Как получить доступ к мувиклипу внутри TileList, чтобы обновить альфа-канал текста?

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 плохо документирован.


person Livi17    schedule 04.03.2014    source источник


Ответы (1)


К сожалению, не существует способа получить доступ к содержимому файла 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]

Похоже, что нет никаких следов добавленных мувиклипов.

Это показывает нам, что TileList состоит из 2 экземпляров ScrollBar и одного Sprite, и что Sprite имеет один дочерний элемент Sprite, у которого больше нет дочерних элементов.

person Marcela    schedule 05.03.2014
comment
Что ж, это интересно знать. К счастью, это не критично для моего проекта. Я планировал использовать tileList в качестве окна предварительного просмотра и позволить людям обновлять маленькие миниатюры в списке плиток различных скриншотов с обновленным текстом. - person Livi17; 06.03.2014