0

この単純な例を作成したのは、メイン クラスのすべての設定を初期化し、必要に応じてそれを Game クラスに追加 (および更新) したい (両方のクラスが別のクラスである) メニュー項目である、より複雑なクラスを使用していたためです。 )

クラス: メイン (ドキュメント クラスは、(理想的には) すべてが初期化/作成される場所です)

    public class Main extends MovieClip
    {
            //testing passing on reference to Game
        private var testBitmap:Bitmap;
        private var testBitmapData:BitmapData;
        private var testArray:Array;

            public function Main():void
            {
                testBitmapData = new BitmapData(256, 256, false, 0xCCDDEE);         
                testBitmap = new Bitmap(testBitmapData);            
                testArray = [];
                testArray.push(testBitmap);    //Array for reference

                game = new Game(540, 960, testArray); 
                    //create Game class, pass reference to Object
                game.x = 0;
                game.y = 0;
            }
     }

クラス: ゲーム (ドキュメント クラスによって作成され、(理想的には) すべてが実行される場所)

    public class Game extends MovieClip
    {

            private var testingArray:Array

            public function Game(gameWidth:int, gameHeight:int, testArray:Array):void
            {
                    this.testingArray = testArray;  //assign to local Array and access
                    addChild(testingArray[0]);  
             //addChild to Game from an item intialised in Main, doesn't work >___<
            }
    }

.

.

.

問題は、私の元の Game クラスです。キャッシュされた BitmapData の最初のバンドルと、ここでカットダウンを循環する必要がある BitmapData を示すリスト配列を受け取ります (そして、その参照は更新のためだけに機能します (既に Main にChild を追加した場合):

    public function Game(gameWidth:int, gameHeight:int, cachedBitmapClipArray:Array)
    {

            this.cachedBitmapClipArray = cachedBitmapClipArray;


            private function update():void
            {           
                for each (tempCachedBitmapClip in cachedBitmapClipArray)  
                {
                    tempCachedBitmapClip.updateCurrentTile();   
          //but updating through the reference to an item initialised in Main works !!
                }
            }

    }

.

参照を作成し、オブジェクトに渡される (またはアクセスする) 方法は、元のインスタンスのように動作しますか?? (子を追加できること)

つまり、オブジェクトは「スコープ」を越えることができますか (??)、またはオブジェクトが初期化されたクラスでのみ制御 (インスタンス化) されるべきです。

4

1 に答える 1