メイン ActionScript 3.0 特設会議室 swfの単体実行判定(AS2での「this != _root」) | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
phamin | Åê¹ÆNo.34502 投稿日時: 2007-8-1 14:25 |
新米 居住地: 投稿: 18
使用環境:
WinXP Flash8 |
swfの単体実行判定(AS2での「this != _root」) AS2使用時に、メインのswf(A)に読み込まれるswf(B)に、
if (this != _root) {処理} …と書いておき、BがAに読み込まれて実行された場合と、B単体で実行された場合とで、処理を分けるということをしておりました。 これをAS3でやろうとした場合、どのような式になるのでしょうか (こちらで、 if (this != Object(root)) {} if (stage.root != Object(root)) {} …など試してみたのですが、うまくいきませんでした) |
野中文雄 | Åê¹ÆNo.34506 投稿日時: 2007-8-1 15:36 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: swfの単体実行判定(AS2での「this != _root」) あれこれ論理比較をしてみる前に、まずそれぞれのrootなどのインスタンスが何を参照しているのかを確かめましょう。
引用: phaminさんは書きました: |
phamin | Åê¹ÆNo.34507 投稿日時: 2007-8-1 17:49 |
新米 居住地: 投稿: 18
使用環境:
WinXP Flash8 |
Re: swfの単体実行判定(AS2での「this != _root」) スクリプトを、読み込まれるswf(B)のフレームにコピーし、実行した結果は、以下になりました。
■読み込まれるswf単体で実行した場合 root : [object MainTimeline] root.parent : [object Stage] stage : [object Stage] status_str:standalone ■メインのswfに読み込んで実行した場合 root : [object MainTimeline] root.parent : [object Loader] stage : null status_str:loaded 「root.parent」の型が、「Loader」か、そうでないかで、 読み込まれている「loaded」か、単体実行「standalone」か分けることができるのですね。 if(this != _root){処理}については、ひとまず if(root.parent is Loader){処理}にて代用してみます。 「stage」がnullかどうか比較することで、「displayed」かそうでないか判定している部分(↓)と、 --------------------------------------------------------- if (stage != null) { status_str += " and displayed"; } --------------------------------------------------------- 厳密な等価演算子で比較している部分(厳密な等価演算子を使っている理由)(↓)については、 --------------------------------------------------------- if (myParent === stage) --------------------------------------------------------- まだ、私の理解が追いついておりません。 今後の課題です。 お教えいただきありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |