この単純な例を作成したのは、メイン クラスのすべての設定を初期化し、必要に応じてそれを 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 !!
}
}
}
.
参照を作成し、オブジェクトに渡される (またはアクセスする) 方法は、元のインスタンスのように動作しますか?? (子を追加できること)
つまり、オブジェクトは「スコープ」を越えることができますか (??)、またはオブジェクトが初期化されたクラスでのみ制御 (インスタンス化) されるべきです。