- ベストアンサー
AS3 Event.ADDED_TO_STAGEについての疑問
- Event.ADDED_TO_STAGEについての調査をしていますが、特に使用する必要はない場合が多いようです。
- SWFを外部からロードする場合だけでなく、他の場面でもEvent.ADDED_TO_STAGEを使用している例があります。
- コンストラクタ内でのsuper()の目的や、初期化のためのsuper()の記述について理解できていません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 補足で書かれていらっしゃる件に関して。 > 1、ifの書き方について… その if文 の書き方は中括弧を省略しているだけです。 これは ActionScript に始まったことではなく その基となった JavaScript でも さらにその基の JAVA でも さらに C でも共通でできる書き方です。 「プログラマで、生きている カッコをつけたコードはカッコわるいのか論争」 http://el.jibun.atmarkit.co.jp/hidemi/2009/07/post-29fb.html 「if文の括弧は省略できるなら省略するのは是か非か バシャログ。」 http://c-brains.jp/blog/wsg/09/08/05-004630.php その他 例えば VBA や VBS などでも if文に中括弧こそ出てきませんが 括りを省略できるという仕様自体は共通です↓。 '-------------------- aaa = 1 If aaa = 1 Then MsgBox aaa End If '-------------------- . ↓同じこと↑ '-------------------- aaa = 1 If aaa = 1 Then MsgBox aaa '-------------------- たいていの言語で共通の事柄ではないかと思います。 > 2、if (stage) がどんな状況… if文とは, そもそも () の中が true であるかどうかを判断して true であればそれに続く {} 内などの文を実行するというものです。 ※この場合の true とは Boolean とは限りません。 if(ココがtrueであれば){ ココが実行される } それでは 広義で言う(Booleanとは限らない) 「true とは何か?」というと, 「false ではないもの(false 以外のもの)」となります。 ではその 広義で言う 「false とは何か?」というと, 「false」または「0」または「」または「null」または「undefined」などになります。 新規ドキュメントを作成して 次のスクリプトをフレーム1に書き ムービープレビューしてもらうと理解が深まるかもしれません。 //------------------------------------ var aaa = 0; if(aaa) trace(aaa + " は true です。"); else trace(aaa + " は false です。"); var bbb = 1; if(bbb) trace(bbb + " は true です。"); else trace(bbb + " は false です。"); var ccc = 100; if(ccc) trace(ccc + " は true です。"); else trace(ccc + " は false です。"); var ddd = ""; if(ddd) trace(ddd + " は true です。"); else trace(ddd + " は false です。"); var eee = "あ"; if(eee) trace(eee + " は true です。"); else trace(eee + " は false です。"); var fff = null; if(fff) trace(fff + " は true です。"); else trace(fff + " は false です。"); var ggg = !null; if(ggg) trace(ggg + " は true です。"); else trace(ggg + " は false です。"); var hhh = undefined; if(hhh) trace(hhh + " は true です。"); else trace(hhh + " は false です。"); var iii = !undefined; if(iii) trace(iii + " は true です。"); else trace(iii + " は false です。"); var jjj:MovieClip; if(jjj) trace(jjj + " は true です。"); else trace(jjj + " は false です。"); jjj = new MovieClip(); if(jjj) trace(jjj + " は true です。"); else trace(jjj + " は false です。"); //------------------------------------ 感覚的に簡単に言えば 「偽」の他に「無」とか「空」とか「存在しないもの」が false です。 その false 以外が true です。 ですから if (stage) は「ちゃんと stage が存在したら」のような意味になります。 上記スクリプトで言えば 最後の jjj に関する2例がこれに最も近いケースになります。 > 3、中段のinit()と下段のリスナー関数のinitは > なぜ名前が同じものになってるのでしょうか?。 同じにしないと 関数init は実行されないからでしょう。 だから同じにしてある(というか 関数init を実行するために書いてある)のです。 init は initialize の略で initialize を英語的に言えば「初期化」などの意味があります。 しかし ActionScript においては何の意味も持ちません。 例えば TV は television の略ですが ActionScript においては何の意味も持たないのと同じです。 もちろん自分で init という名のクラスや関数やインスタンスなどを作れば意味が出てきます。 しかし ActionScript の元のキーワードには init などありません。 この場合は private function init で定義した勝手な関数名です。 なお私も使い方などを全く知りませんが initialize という名のメソッドであれば Locale クラスというクラスにあるようです。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
Google で「Event.ADDED_TO_STAGE」と検索しただけで トップに次のページがヒットしましたが。。。 「Event.ADDED_TO_STAGEをドキュメントクラスで使う理由」 http://sinketu.com/?p=225
補足
ご回答ありがとうございます。 すみません、もう少し質問させていただいてよろしいいでしょうか。 1、ifの書き方についてですが、上記の中でif(条件式){} という書き方になっていないのはなぜでしょうか? 2、if (stage) がどんな状況を意味するのかわかりせん。if stage != nullということらしいのですが、「stageが否定されているとき」、、、?とはどんな時なのでしょうか? 3、中段のinit()と下段のリスナー関数のinitはなぜ名前が同じものになってるのでしょうか?。中段のinit()は初期化をする関数で、下のinitはただのコールバックの名前 と考えていたのですが、これは間違いでしょうか? これらで混乱しています。 よろしくお願い致します。
お礼
細やかなご説明本当にたすかります。 省略が許されされるということは全く気がつきませんでした。 またtrue falseの考え方についても式の結果だけでなく状態を示すもである事も 盲点でした。本当に助かりました。またよろしくお願い致します。