0

パブリック関数内のメニュー項目として MovieClips を使用して動的にメニューを作成しましたが、タイムライン上でこれらの MovieClips にアクセスする必要もあります。

各メニュー項目内の関数と子 MovieClips にアクセスしようとしています。

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();

どんな提案でも大歓迎です。

4

1 に答える 1

0

これを試して:

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)

于 2012-08-06T03:31:29.433 に答える