メイン 迷える子羊の部屋【初心者専用】 MCの存在を調べる | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
野中文雄 | Åê¹ÆNo.45412 投稿日時: 2010-7-31 5:49 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MCの存在を調べる 基本的に、変数には初期値を与えることでしょう。ということで、「変数には初期値を与える」をまとめました。
引用: 961832pさんは書きました: |
961832p | Åê¹ÆNo.45407 投稿日時: 2010-7-30 14:01 |
常連 居住地: Akiruno-shi 投稿: 155
使用環境:
:AS3: - Adobe Flex SDK, Eclipse, AIR GEAR - LB.Log AS3, Alcon2 :AS2: - AMES(ASDT, MTASC, Eclipse, swfmill) - Natural Entry Point Method - LB.Log, Zeroi Pro, Firefox, Chromium(Iron), IE ---------------- Pro, |
Re: MCの存在を調べる cancan さん、応答ありがとうございます。 今回テストに使ったコードは確かに見づらいですね(汗)。 「これはどうかな?あれはどうだろう?」と色々やっていたら大量になってしまい、あまり意味の無い部分もありそうです。 今回のスレッドがきっかけで、自分もBoolean型とundefinedについて理解を深める事ができました。ありがとうございました。 ---------------- Fumio さん、情報ありがとうございました。 AS2のコードをAS3へ持ってくる場合は、特に注意が必要そうですね…気をつけねば。
|
cancan | Åê¹ÆNo.45405 投稿日時: 2010-7-30 12:50 |
新米 居住地: 埼玉 投稿: 21
使用環境:
AS2.0:WindowsXP、Flash8 AS3.0:Win7、CS5.5 |
Re: MCの存在を調べる Fumioさん
回答ありがとうございます。 >「評価」するというのは、ブール(論理)値つまり「Boolean型」のデータに「変換」することを意味します なるほど、分かりました。 if(a_mc)というのは、if(a_mc==true)ではなく、if(Boolean(a_mc)==true)、のことなのですね。 試してみましたが、なるほど、結果が一致しました。 traceの結果も、変換された「特別な(文字列)表現」ということ、勉強になりました。 モヤモヤがスッキリしました(*^-^*) ご回答いただいたみなさん、本当にありがとうございました。
|
cancan | Åê¹ÆNo.45404 投稿日時: 2010-7-30 12:42 |
新米 居住地: 埼玉 投稿: 21
使用環境:
AS2.0:WindowsXP、Flash8 AS3.0:Win7、CS5.5 |
Re: MCの存在を調べる 961832pさん
たくさんの結果をありがとうございます。 参考にします。 じっくり見てるとこんがらがりそうになりましたが(笑)型指定して宣言してただけでは、Boolean変換してtrueにはならないんですね。はやりcreateEmptyMovieClipが必要なんですね(AS2.0では) 関係ないですが、3_mcと、数字で始まるmc名もエラーになるわけではなく付けられるんですね! 素朴な?疑問に共感いただきありがとうございました(^^)
|
野中文雄 | Åê¹ÆNo.45403 投稿日時: 2010-7-30 2:33 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MCの存在を調べる 「abcという変数」に、数値100や文字列"test"を入れてお試しください。
引用: cancanさんは書きました: 「ブール(論理)値」として「評価」するというのは、ブール(論理)値つまり「Boolean型」のデータに「変換」することを意味します。
「trace(a_mc)の結果」は、[出力]パネルに表示するためにこれも変換された「特別な(文字列)表現」であって、中身そのものではありません。変数(インスタンス名)の中身は「ムービークリップ」(オブジェクト)、もっと正確には「ムービークリップ」(オブジェクト)の「参照」と呼ばれるものです。 引用: cancanさんは書きました: ActionScript 3.0では、型指定をした変数に値が設定されていないとき、値はそのデータ型のデフォルト値になります。undefinedが返るのは、型指定をしない変数の初期値や配列に存在しないエレメント値、値を返さない(void)関数の戻り値などごくかぎられた場合です。 引用: 961832pさんは書きました: |
961832p | Åê¹ÆNo.45402 投稿日時: 2010-7-29 20:34 |
常連 居住地: Akiruno-shi 投稿: 155
使用環境:
:AS3: - Adobe Flex SDK, Eclipse, AIR GEAR - LB.Log AS3, Alcon2 :AS2: - AMES(ASDT, MTASC, Eclipse, swfmill) - Natural Entry Point Method - LB.Log, Zeroi Pro, Firefox, Chromium(Iron), IE ---------------- Pro, |
Re: MCの存在を調べる 自分はこのあたり、いつも感覚的に使ってしまっているので(汗)、解釈が間違っているかもしれませんが、 「if(a_mc == true)」は、「MovieClip型の変数a_mcの中身」と「Boolean型の値true」は等しいかどうかの評価結果が真か偽かという事なので、この場合は偽に。 「if(a_mc)」は、MovieClip型の変数a_mcの中身の評価結果が真か偽かという事なので、undefinedやnullが入っていれば偽、それ以外のもの(参照?)が入っていれば真に、 といった感じなのでしょうか。 「感覚的に」とか言ってる自分が言うのは変ですが(汗)、慣れないうちは略さずに丁寧な記述を心がけたほうが、ミスも防げて良いのかもしれませんね。 気になったので、どういうのがtrueやfalseになるのか自分もAS2とAS3の両環境でやってみました。コードと各結果は下にありますので参考になれば幸いです。 このスレッドとは直接関係ありませんが、AS3環境では中身がundefinedではなくnullに置き換えられていて、結果がAS2の時と少し違っていました。 こういったところは、ちゃんと把握していないとバグが入り込みやすそうで、何だか不安になりますね(汗)。 ---------------- 以降は今回試したAS2とAS3のコードです。コメント部分は各行の出力結果になっています。
|
cancan | Åê¹ÆNo.45401 投稿日時: 2010-7-29 20:27 |
新米 居住地: 埼玉 投稿: 21
使用環境:
AS2.0:WindowsXP、Flash8 AS3.0:Win7、CS5.5 |
Re: MCの存在を調べる ひろゆきさん
本当にありがとうございます。 >オブジェクトが存在していれば、true「として」評価されるのであって、 >true「ではない」でしょう? あ、そうですね。 なんとなくイメージできました。 trace(a_mc)の結果が、インスタンスのパスが得られる…ということは、if (a_mc)はパスを評価している、と考えていいんですか? そうではなくて、やっぱりa_mcという「ムービークリップ」を評価している、ということですか?
|
ひろゆき | Åê¹ÆNo.45398 投稿日時: 2010-7-29 15:14 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: MCの存在を調べる 引用:
cancanさんは書きました: ムービークリップ・インスタンスのパス(_rootからの参照) ですね。
abcがオブジェクトだとして、 オブジェクトが存在していれば、true「として」評価されるのであって、 true「ではない」でしょう? オブジェクトが存在していれば、trueとして評価され、 存在していなければ、false(undefined)として評価される。 だから、if (a_mc) で判定ができる。
|
cancan | Åê¹ÆNo.45397 投稿日時: 2010-7-29 15:01 |
新米 居住地: 埼玉 投稿: 21
使用環境:
AS2.0:WindowsXP、Flash8 AS3.0:Win7、CS5.5 |
Re: MCの存在を調べる ひろゆきさん
返信ありがとうございます。 もう少しお付き合いいただいていいでしょうか。ほんとすみません。 >a_mcが存在していない状態で、trace(a_mc) やってみました。 undefined となりました。 存在している状態で同じことすると _level0.a_mc となりました。 これはa_mcの何が出力されているんでしょうか。名前…じゃないですよね。 > if (a_mc == true) で判定するのは間違いです。 なぜ間違いか…は聞いてもいいでしょうか。 例えば、abcという変数にtrueかfalseか入ってるとしたら、 if(abc)もif(abc==true)も同じでいいんですよね? 教えていただいたサイトに、「表001■データのブール(論理)値評価」というのがあって、オブジェクトはtrueと書いてありました。 そしたらMc==trueでできないのかな?と思ったもので… とても基本的な知識が抜けているor勘違いがあるんだと思います。 自分のモヤモヤばかり書いてしまってすみません。 さらに何かヒントが貰えるとうれしいです。 よろしくお願いします。
|
ひろゆき | Åê¹ÆNo.45391 投稿日時: 2010-7-29 12:10 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: MCの存在を調べる 1. if (a_mc == true) で判定するのは間違いです。
2. a_mcが存在していない状態で、 trace(a_mc) で、どのような出力がされるのか確認してください。
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |