0

私は AS3 でクラスを使用して追加するのは初めてです。これまでのところ、映画のフレーム 1 ですべてを行ってきました。私は最終的にクラスを学ぶべきだと考えたので、ここに行きます:) 画面にオブジェクトを追加するとき、後で使用するためにそれらをコンテナオブジェクトにグループ化するのが好きです。だから私は構築中の Hex のボードを持っており、それらをステージ上にある 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);
            }
        }

    }

}
4

1 に答える 1

1

このパッケージではhexContainerが定義されていないため、1120エラーが発生します。var hexContainer = [your_reference_here](1)子を追加する前に、宣言する必要があります。

また

(2)ヘクスを子としてBoardsクラスに追加し、それをhexContainerに追加するだけです。hexContainer.addChild(TempHex);置く代わりにaddChild(TempHex);

それを行う方法は他にもたくさんありますが、これら2つが最も簡単なアプローチだと思います。

于 2012-06-04T06:06:55.310 に答える