2016-12-04 6 views
2

ループを使用してステージからムービークリップを隠そうとしていますが、公開時に次のエラーが表示されます(これは概念の例です)。ReferenceError:エラー#1069:プロパティbox_mc_0

var q; 
for (q = 0; q <= 3; q++) { 
    stage["box_mc_" + q].visible = false; 
} 

エラーメッセージ:

ReferenceError: Error #1069: Property box_mc_0 not found on flash.display.Stage and there is no default value. at test_fla::MainTimeline/frame1()

ReferenceError: Error #1069: Property box_mc_0 not found on flash.display.Stage and there is no default value. at test_fla::MainTimeline/frame1()

任意の助けいただければ幸いです。

答えて

3

は、あなたは、単にstage変数の代わりにthisキーワードを使用する必要があります。

var q; 
for (q = 1; q <= 3; q++) { 
    this["box_mc_" + q].visible = false; 
} 

ビーイングは、オブジェクトがthisキーワードは中に参照することになりするMainTimelineオブジェクトの子が、あるということである単純な理由その文脈であり、彼らはstageの直接の子供ではありません。
違いの詳細については、hereという便利な情報があります。

+0

ありがとうございました! –

+0

@MikeP答えが有用で、問題を解決した場合は、[回答として受け入れる](http://stackoverflow.com/help/someone-answers)をご検討ください:) – someOne

1

ザッツステージのない本当に子供、

あなたは、ステージのすべてを追跡し、それをしようとした場合は、その後、あなたは中間容器は、「ルート」はだstagebox_mc_#の間に存在する見ることができます

for (var i:int =0; i<stage.numChildren; i++) { 
    trace(stage.getChildAt(i).name); 
} 

をチャイルズ、ので、あなたは正しいコール方法は

で、私の場合には

ので、タイムラインを介してbox_mc_#を追加しました

var q; 
for (q = 0; q <= 3; q++) { 
    stage.getChildByName("root1")["box_mc_" + q].visible = false; 
} 
+0

_正しい呼び出し "!! _あなたのコードをテストしましたか? – someOne

+0

@ someone wt?上記の質問への本当の答えです(いくつかの小さな誤字で)また、投票ボタンで愚かではありません –

+1

あなたのコードに**の別の_ReferenceError、Error#1069_があります。 "]' 'stage.getChildAt(0)'(あなたのタイプミスに関係なく)で置き換える必要があります。そして、 "下投票"ボタンは、このサイトで整理されたものを作るためにあります:) – someOne

関連する問題