AS3 - 从类中将对象添加到MovieClip容器

时间:2012-06-03 22:56:38

标签: actionscript-3 class addchild

我很擅长在AS3中添加类,到目前为止,我刚刚在电影的第1帧上做了一切。我想我最终应该学习类,所以这里是:)当我在屏幕上添加对象时,我喜欢将它们组合在容器对象中以供以后使用。所以我有一个我正在构建的Hex's板,我正在尝试将它们放入一个名为hexContainer的MovieClip中,我将它放在舞台上。现在如果我像往常一样做这个代码,我会做hexContainer.addChild(tempHex)。但是,这给我一个错误1120。

我的班级代码如下:

package  
{
import flash.display.MovieClip
import Hex
import flash.display.Stage

public class Boards extends Hex
{
    public function buildBoardOne()
    {
        for(var i:int = 1; i <= 5; i++)
        {
            var tempHex:Hex = new Hex();
            tempHex.x = 100;
            tempHex.y = 100;
            hexContainer.addChild(tempHex);
        }
    }

}

}

我在开始时只是将这些添加到舞台中并且在我这样做时出现错误,这就是导入语句存在的原因。我已经检查了谷歌以找出原因,这就是他们所说的。

现在,当我将这些添加到舞台时,它工作得很好。我可以得到我的十六进制并操纵他们,我们参加了比赛,这是一段美好的时光。现在我正试图将它们放入容器影片剪辑中,他们对我很生气,我无法安抚它们:p

你们可以给我的任何帮助将不胜感激。

编辑代码以测试okayGraphics的建议:

package  
{
    import flash.display.MovieClip
    import Hex
    import flash.display.Stage

    public class Boards extends Hex
    {
        var hexContainer:MovieClip = new MovieClip();
        stage.addChild(hexContainer);

        public function buildBoardOne()
        {
            for(var i:int = 1; i <= 5; i++)
            {
                var tempHex:Hex = new Hex();
                tempHex.x = 100;
                tempHex.y = 100;
                stage.addChild(tempHex);
            }
        }

    }

}

1 个答案:

答案 0 :(得分:1)

您收到1120错误,因为此程序包中未定义hexContainer。 您要么(1)在尝试向其添加子项之前声明var hexContainer = [your_reference_here]

(2)您可以将hexes作为子项添加到Boards类中,然后将其添加到hexContainer中。 而不是hexContainer.addChild(TempHex);只是放addChild(TempHex);

还有很多其他方法可以做到这一点,但我认为这两种方法是最直接的方法。