メイン 迷える子羊の部屋【初心者専用】
インスタンスについて | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| TJFORD | Åê¹ÆNo.36788 投稿日時: 2007-12-12 9:37 |
半人前 ![]() ![]() 居住地: Tokyo 投稿: 42
使用環境:
:Flash CS3 ![]() |
インスタンスについて プロパティインスペクタでインスタンス名をつけてtraceする場合と、
クラスから作ったインスタンスをtraceすると出力内容が異なるのはなぜでしょうか。 (1)プロパティインスペクタにてインスタンスにインスタンス名mc ----------------------------------------------------------- trace(mc); 出力:_level0.mc ----------------------------------------------------------- (2)クラスからインスタンスを作成 ----------------------------------------------------------- var mc = new MC(); trace(mc); 出力:[object Object] ----------------------------------------------------------- (1)はインスタンスそのものを指して、 (2)のmcはインスタンスを参照するobject型の変数ということでしょうか。 頭が混乱しています。 うまく説明できていないかもしれませんがよろしくお願いいたします。 |
| ニノミヤ カズノリ | Åê¹ÆNo.36796 投稿日時: 2007-12-12 14:24 |
職人 ![]() ![]() 居住地: 東京 投稿: 430
使用環境:
CS4 .4.11, .5.7 XP Pro(sp3)Flash Player 10,0,22,87, AIR 1.5.1, IE 5.5 & 6 & 7 & 8, Firefox 2.0.0.20 & 3.0.11 & 3.5, Opera 9.64, Safari 4, Google Chrome 2.0.172.31, Netscape 7.1 |
Re: インスタンスについて 一つお聞きしたいのですが、
MCクラスは何か継承されているのでしょうか? |
| TJFORD | Åê¹ÆNo.36797 投稿日時: 2007-12-12 14:32 |
半人前 ![]() ![]() 居住地: Tokyo 投稿: 42
使用環境:
:Flash CS3 ![]() |
Re: インスタンスについて ご返信ありがとうございます。
今回は特に継承してません。 こんな感じでしょうか。 ------------------------------ class MC{ function MC(){ } } ------------------------------ |
| ニノミヤ カズノリ | Åê¹ÆNo.36799 投稿日時: 2007-12-12 15:27 |
職人 ![]() ![]() 居住地: 東京 投稿: 430
使用環境:
CS4 .4.11, .5.7 XP Pro(sp3)Flash Player 10,0,22,87, AIR 1.5.1, IE 5.5 & 6 & 7 & 8, Firefox 2.0.0.20 & 3.0.11 & 3.5, Opera 9.64, Safari 4, Google Chrome 2.0.172.31, Netscape 7.1 |
Re: インスタンスについて 何故そうなるのか、
と言う解答にはなっていませんが、 インスタンスの戻り値はFlash側が決める事ですので気にする必要は無いと思います。 (MovieClip, Array, String, Number等) [object Object]が返ってくる理由としては、 どんなクラスでもインスタンスの階層ルートにObjectが存在している為ではないでしょうか。 |
| 永井勝則 | Åê¹ÆNo.36801 投稿日時: 2007-12-12 16:01 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: インスタンスについて Flash CS3のAS3用ヘルプには
引用: trace ステートメント内の引数に String 以外のデータ型が含まれている場合は、 とあります。 またコリン・ムック先生の「ActionScript for Flash MX」には 引用:
(いずれも永井訳) と書かれています。 ま、Flash Playerのデバッグ版はこういうルールでやっています、 ということなのではないでしょうか?
|
| ニノミヤ カズノリ | Åê¹ÆNo.36804 投稿日時: 2007-12-12 16:32 |
職人 ![]() ![]() 居住地: 東京 投稿: 430
使用環境:
CS4 .4.11, .5.7 XP Pro(sp3)Flash Player 10,0,22,87, AIR 1.5.1, IE 5.5 & 6 & 7 & 8, Firefox 2.0.0.20 & 3.0.11 & 3.5, Opera 9.64, Safari 4, Google Chrome 2.0.172.31, Netscape 7.1 |
Re: インスタンスについて 引用:
永井勝則さんは書きました: なるほど、 デフォルトだと”[object Object]”を返すのは決まっているんですね。 AS3.0だとちゃんとクラス名を返してくれるのに…。 もしAS3.0風に返すとなると、 となる訳ですね。 あ、話がそれましたね。失礼しました。 |
| 野中文雄 | Åê¹ÆNo.36805 投稿日時: 2007-12-12 16:56 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: インスタンスについて デフォルトというか、Object.toString()メソッドをオーバーライド(再定義)していないクラスが多いからでしょうね。
引用: ニノミヤ カズノリさんは書きました: |
| TJFORD | Åê¹ÆNo.37056 投稿日時: 2007-12-30 9:52 |
半人前 ![]() ![]() 居住地: Tokyo 投稿: 42
使用環境:
:Flash CS3 ![]() |
Re: インスタンスについて 返信遅れて申し訳ありません。
タイミングを逃してしまったのと、野中さんの書き込みでこのスレッドはまとまったかなと思い、書き込みをしませんでした みなさんの書き込みを拝見して自分なりの解釈になりますが、 trace();の中にムーピークリップがはいっているとそのムービークリップへのパスが出力されるという仕様になっている、こういった考えでよいのかなと思いました。 一点疑問があるのですが、野中さんの書き込みのなかのCodeで Object.prototype.toString = ? といった記述がありましたが、Objectクラスのprototypeというのは何を参照しているのでしょう?prototypeプロパティはそのクラスのスーパークラスを参照するのだと思うのですが、Objectのスーパークラスとは何になるのでしょうか? 参照: ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Flashドキュメンテーション:prototype (Object.prototype プロパティ) http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002585.html#wp663998 Flashドキュメンテーション:toString (Object.toString メソッド) http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002588.html#wp667750 |
| 野中文雄 | Åê¹ÆNo.37057 投稿日時: 2007-12-30 13:57 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: インスタンスについて MovieClipクラスは例外的に、toString()メソッドをオーバーライドしていないようです。したがって、trace()関数がMovieClipインスタンスのパスを返すという処理は、Flash Playerが内部的に行っているものと推測します。その意味では、そういう「仕様になっている」といえるでしょう。
引用: TJFORDさんは書きました: Object.prototypeプロパティの内容というのは、別のご質問「クラスファイル内でのインスタンス作成」と深く関わります。以下のノートなどを参考に、学習されることをお勧めします。「スーパークラスを参照する」という旨がドキュメントにも記載されていますが、正確とはいえないでしょう。 参考:「ActionScript 2.0と1.0の継承について」 引用: 一点疑問があるのですが、野中さんの書き込みのなかのCodeで なお、引用されたLiveDocsのURLが違っています。 引用: 参照: |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン





CS4
.4.11, 





