我正在添加moiveClips并相应地放置它们的位置。我将所有动态添加的剪辑放在一个新的影片剪辑中,然后将其置于舞台上。作为测试,我看到我可以控制主容器中的alpha但我无法访问孩子。我如何分别评估每个flagButton?在下面的循环示例中会有几个。
var flagButton:MovieClip;
var flagArray:Array = new Array;
var flagDisplayButtons:MovieClip = new MovieClip();
function displayFlagButtons()
{
for( var i = 0; flagArray.length > i; i++)
{
var flagButton:MovieClip = new roundButton();
flagButton.x = (flagButton.width + 10) * i;
flagButton.y = stage.stageHeight - flagButton.height;
addChild(flagButton);
flagDisplayButtons.addChild(flagButton);
}
addChild(flagDisplayButtons);
// Works
flagDisplayButtons.x = stage.stageWidth/2 - flagDisplayButtons.width/2;
// Does not see flagButton
flagDisplayButtons.flagButton.alpha = .5;
}
GETS错误: TypeError:错误#1010:术语未定义且没有属性。
答案 0 :(得分:1)
您需要使用getChildAt
或getChildByName
来获取DisplayObjectContainer
的孩子
IE:
flagDisplayButtons.getChildAt(0).alpha = 0.5;
答案 1 :(得分:1)
在您的示例代码中,您创建了一组按钮实例,并逐个将它们添加到flagDisplayButtons的显示列表中。它们按照您放置的顺序显示在该显示列表中。
第一个实例位于索引0
第二个实例位于索引1
第三个实例是索引2
等等。
因此,如果您想要访问添加的第三个按钮,可以执行以下操作:
var flagButton:RoundButton = flagDisplayButtons.getChildAt(2) as RoundButton;
现在您已创建引用该按钮的变量,您可以执行以下任何操作:
flagButton.alpha = .5;
flagButton.x = 100;
flagButton.y = 200;