メイン コーダーズルーム【スクリプト系】 ArrayClassみたいな独自クラスをつくりたい | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ken1kun | Åê¹ÆNo.22976 投稿日時: 2006-1-20 14:14 |
半人前 居住地: 投稿: 52
使用環境:
WinXP,Flash CS3 + おもにv9書出 |
ArrayClassみたいな独自クラスをつくりたい 初歩的な質問でもうしわけありません。
Array Classの例 ---------------------------- var tmpArray = new Array(); trace("出力結果") trace(tmpArray); tmpArray = [1,2,3,4,5]; trace(tmpArray); -出力---------------------------- 出力結果 1,2,3 ----------------------------- Array Classを上に書きましたように やりますと、newしたその参照?(tmpArray)をtraceすると 中身を出力できますが 通常独自のクラス、たとえば ---------------------------- class myArary(){ } var tmpArray = new myArray(); trace(tmpArray) -出力---------------------------- 出力結果 [object object] ----------------------------- newしたその参照に値を入れてしまうと 参照が上書きされてしまうし Array Classのようにできません。 どうやったら、Array Classのようなクラスをつくれるのでしょうか? ご教授願います。 |
kool_it | Åê¹ÆNo.22978 投稿日時: 2006-1-20 14:36 |
常連 居住地: 東京 投稿: 92
使用環境:
win7::Win2K:Flash CS5.5: 10.7:Flash CS5.5: |
Re: ArrayClassみたいな独自クラスをつくりたい クラスにtoStringメソッドを実装すればよいです。
|
野中文雄 | Åê¹ÆNo.22979 投稿日時: 2006-1-20 14:41 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ArrayClassみたいな独自クラスをつくりたい カスタムクラスの出力を変更するには、toString()メソッドを独自定義します。
引用: ken1kunさんは書きました: 配列も、参照は上書きされます。以下のふたつのステートメントは、同じ処理です。
new以外の演算子によってインスタンスの生成(リテラル記述)をすることは、Array([])とObject({})以外はできないと思います。 引用: newしたその参照に値を入れてしまうと |
ken1kun | Åê¹ÆNo.22984 投稿日時: 2006-1-20 15:39 |
半人前 居住地: 投稿: 52
使用環境:
WinXP,Flash CS3 + おもにv9書出 |
Re: ArrayClassみたいな独自クラスをつくりたい Kool_itさん、野中さん ご返信ありがとうございます。
さらにご質問なのですが 以下のようにscriptを書きまして
//trace出力結果 [type Object] undefined この部分で trace(tmpTest["p1"]) toStringで返してくるObjectの中のp1のデータを 取り出そうとするとundefinedになってしまいます。 また、tmpTest["p1"]と呼ぶと、toString()が呼ばれません。 先のArrayの話にもどり以下のように書くと var myArray = new Array({x:0,y:0},{x:0,y:0},{x:0,y:0}) trace(myArray[0]["x"]) 結果 0 配列内objectを取り出せます。 これはどういう違いなのですか? 初心者で本当に申し訳ありません。 「ここ読めば」、などどこか参考になるページのURLをご紹介いただくだけでもかまいません。 よろしくお願いいたします。 |
野中文雄 | Åê¹ÆNo.22989 投稿日時: 2006-1-20 16:22 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ArrayClassみたいな独自クラスをつくりたい trace()ステートメントは、引数を文字列表現に変換して、[出力]します。その表示される文字列と、引数を直接参照した場合に取出される値とは別ですよ。以下のスクリプトで、ふたつめのtrace()ステートメントの[出力]が、"undefined"の"u"でなく、"undefined"となる理由をお考えください。
引用: ken1kunさんは書きました: trace()の話とインスタンス参照へのアクセスの話は、別途に考える必要があります。
//trace出力結果 [object Object],[object Object],[object Object] [object Object] 0 引用: この部分で 配列と同じように実装するというのは、かなり難易度の高い課題で、配列アクセス演算子によるインスタンス生成やコンストラクタのオーバーロード(多重定義)など実質的に困難と思われるものもあります。 trace()の[出力]は、あくまでデバッグ時の便に過ぎません。まずは、通常のクラスのプロパティやメソッドの定義で、ご希望の機能を満たすようお考えになるのがよろしいいかと思われます。 引用: 「ここ読めば」、などどこか参考になるページのURLをご紹介いただくだけでもかまいません。 |
ken1kun | Åê¹ÆNo.23004 投稿日時: 2006-1-20 18:23 |
半人前 居住地: 投稿: 52
使用環境:
WinXP,Flash CS3 + おもにv9書出 |
Re: ArrayClassみたいな独自クラスをつくりたい 野中さん ご返信ありがとうございます。
書いていただいたTest classで 意味がわかった気がします。 引用: 配列と同じように実装するというのは、かなり難易度の高い課題で、配列アクセス演算子によるインスタンス生成やコンストラクタのオーバーロード(多重定義)など実質的に困難と思われるものもあります。通常のクラスのプロパティやメソッドの定義で、ご希望の機能を満たすようお考えになるのがよろしいいかと思われます。 もいちど整理しシンプルなやりかたを考えようと思います。 ありがとうございました。 |
野中文雄 | Åê¹ÆNo.23010 投稿日時: 2006-1-20 20:37 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ArrayClassみたいな独自クラスをつくりたい trace()ステートメントでインスタンスの中身を確認したいという点につきましては、ObjectDumper.toString()メソッドを使われるとよいでしょう。
引用: 野中文雄は書きました: |
ken1kun | Åê¹ÆNo.23090 投稿日時: 2006-1-24 18:15 |
半人前 居住地: 投稿: 52
使用環境:
WinXP,Flash CS3 + おもにv9書出 |
Re: ArrayClassみたいな独自クラスをつくりたい 野中さん、レスありがとうございます。
とても助けになりそうなクラスです。 ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |