Общедоступный ролик ActionScript 3

Я динамически создал меню, используя мувиклипы в качестве пунктов меню внутри общедоступной функции, но мне также нужно получить доступ к этим мувиклипам на временной шкале, однако использование кода, аналогичного приведенному ниже, работает для их первоначального создания, но не для доступа к ним на временной шкале.

Я пытаюсь получить доступ к функциям и дочерним мувиклипам внутри каждого пункта меню.

public function createMenuFunction():void {
    var buttonMC:menuButtonMC;
        for (var i:uint = 1; i <= totalTopicsI; i++) {
            buttonMC = new menuButtonMC();
            menuMC.contentMC.addChild(buttonMC);
            buttonMC.name = 'button' + i + 'MC';
            menuMC.contentMC.getChildByName('button' + i + 'MC').UI();
            menuMC.contentMC.getChildByName('button' + i + 'MC').y = (i - 1) * 70;
            menuMC.contentMC.getChildByName('button' + i + 'MC').updateTextFunction(textO['Topic ' + i]);
            menuMC.contentMC.getChildByName('button' + i + 'MC').addEventListener(MouseEvent.CLICK, updateCurrentTopicFunction);
            trace('Menu ' + i + ': ' + textO['Topic ' + i]);
        }
    }
}

Например, следующая строка кода работает внутри этой функции, но не на временной шкале:

menuMC.contentMC.getChildByName('button' + i + 'MC').UI();

Любые предложения приветствуются.


person Kristian Matthews    schedule 07.07.2012    source источник


Ответы (1)


Попробуй это:

public var menuData:Array = new Array();
for (var i:uint = 1; i <= totalTopicsI; i++) {
  menuData[i] = new menuButtonMC();
  menuMC.contentMC.addChild(menuData[i]);
  menuData[i].name00 = 'button' + i + 'MC';
  menuMC.contentMC.getChildByName('button' + i + 'MC').UI(); 
  menuMC.contentMC.getChildByName('button' + i + 'MC').y = (i - 1) * 70; 
  menuMC.contentMC.getChildByName('button' + i + 'MC').updateTextFunction(textO['Topic ' + i]); 
  menuMC.contentMC.getChildByName('button' + i + 'MC').addEventListener(MouseEvent.CLICK, updateCurrentTopicFunction); 
  trace('Menu ' + i + ': ' + textO['Topic ' + i]); 
}

Таким образом вы сохраните все свои кнопки и свойства. (используйте name00, а не name)

person Katax Emperore    schedule 06.08.2012