0

我正在添加 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;
}

获取错误: 类型错误:错误 #1010:术语未定义且没有属性。

4

2 回答 2

1

在您的示例代码中,您已经创建了一堆按钮实例,并且您已将它们一个一个添加到 flagDisplayButtons 的显示列表中。它们按照您放置它们的顺序出现在该显示列表中。

第一个实例位于索引 0

第二个实例位于索引 1

第三个实例位于索引 2

等等。

所以如果你想访问你添加的第三个按钮,你可以这样做:

var flagButton:RoundButton = flagDisplayButtons.getChildAt(2) as RoundButton;

现在您已经创建了引用该按钮的变量,您可以执行以下任何操作:

flagButton.alpha = .5;
flagButton.x = 100;
flagButton.y = 200;
于 2013-05-02T21:23:32.440 回答
1

您需要使用getChildAtgetChildByName获取 a 的子级DisplayObjectContainer

IE:

flagDisplayButtons.getChildAt(0).alpha = 0.5;
于 2013-05-02T21:14:51.307 回答