2012-04-30 11 views
1

以下は私のコードです。それは簡単です。私は、メインステージで定義されたvarを取得し、すべての外部swfにそのvarにアクセスさせるだけです。as3親ムービークリップまたはローダーのバリアブルアクセス?

MAIN SWF IN:ここ

は動作しないコードである

var ThePath:String; 
ThePath = "happy/go/lucky/"; 

///コードの下には上記メイン前回のタイムラインからロードされたSWFです。 (今ここでこれを行うための完全なコードを示しています)

var myMC:MovieClip; 
myMC= parent as MovieClip; 

trace("Your VAR PATH IS " + myMC.ThePath); /// DOES NOT WORK. 

ありがとう、幸せなスタッカー!要するに

UPDATE 4-31-12

:私は、メインステージでグローバルなVARを作成し、他のすべてが外部にロードされたことVARへのswfファイルのアクセスを許可する必要があります。

答えて

3
var myMC:MovieClip = MovieClip(this.parent.parent); 
myMC.ThePath 

変数定義としてcamelCaseを使用する必要があります。

EDIT:

別の解決策は、あなたが(参照を設定し、値を設定することによって)ローダーでそれをロードしたとき、子swfファイル内の親への参照を渡すために、その後、子供が参照することができています親。

すなわち:

親:

関数startLoad(){ するvar mLoader:ローダー=新しいローダー()。 var mRequest:URLRequest = new URLRequest( "Child.swf"); mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE、onCompleteHandler); mLoader.load(mRequest); }

機能onCompleteHandler(loadEvent:イベント) {VARのchildMC:のMovieClip = loadEvent.currentTarget.content。 addChild(childMC:MovieClip); childMC.refToMainSWF = this;参考のため }

http://genaboo.wordpress.com/2008/03/27/as2_vs_as3_root_parent_communicating_between_swfs/

+1

回答が見つかった場合は、回答として投稿してください。これは同じ状況の他の人を助けるでしょう。ありがとう。 – iND

+0

私の回避策はあまりうまくいっていませんでした。私はまだこの質問に対する答えを知りたいです。私の方法は動作しないように最終的に判明しました。私はメインステージでグローバルなvarを作成し、他のすべての人がそのvarに外部からswfのアクセスをロードできるようにする必要があります。 –

+0

@iND答えが見つかったのですか?私は基本的に答えを投稿しました。「子」ムービークリップの親の親を参照して値にアクセスしました。正直なところ、パパ・デ・ボーはグローバルな選択肢です。しかし、子供たちは両親について知ってはいけません。 –

0

は試してみてください。

trace("Your VAR PATH IS " + root.ThePath); 
0

グローバルアクセスのために必要なことをインポートし、静的プロパティ(変数)を持つクラスを作成します。 this relevant questionを参照してください。