0

我对在 AS3 中添加使用类有点陌生,到目前为止,我只是在电影的 frame1 上做所有事情。我想我最终应该学习类,所以这里是 :) 当我将对象添加到屏幕上时,我喜欢将它们组合在容器对象中以供以后使用。所以我有一个正在构建的 Hex 板,我试图将它们放入一个名为 hexContainer 的电影剪辑中,我在舞台上放置了它。现在,如果我像往常一样执行此代码,我只会执行 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);
        }
    }

}

}

我一开始只是将这些添加到舞台上,但当我这样做时出现错误,这就是 import 语句存在的原因。我在谷歌上查了一下,找出原因,这就是他们所说的。

现在,当我将这些添加到舞台时,它工作正常。我可以得到我的格子并操纵它们,我们参加了聚会,那是一段美好的时光。现在我正试图将它们放入容器电影剪辑中,它们对我很生气,我就是无法安抚它们:p

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

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

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

    }

}
4

1 回答 1

1

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

或者

(2)您可以将十六进制作为子类添加到 Boards 类中,然后将其添加到您的 hexContainer 中。而不是hexContainer.addChild(TempHex);仅仅放addChild(TempHex);

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

于 2012-06-04T06:06:55.310 回答