トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     自作クラスのインスタンスのtraceとtoStringメソッドについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ながながい
Åê¹ÆNo.32800
投稿日時: 2007-4-6 20:13
半人前
居住地: 京都
投稿: 30
使用環境:
WindowsXP SP2,
Flash CS3, Flash8
自作クラスのインスタンスのtraceとtoStringメソッドについて
いろいろ検索をしたのですが下記の仕様を明示したドキュメントが見つけられませんでした・・・。
どなたかご存知でしょうか?

だいぶ昔のこちらの話題で、youichさんが次のように言っていました。

引用:

ちなみにtraceに出力されるのは単にそのオブジェクトのtoStringメソッドが呼び出されてるだけです。


Object.prototype.toString = function(){
    return "I am a Object";
}
trace( new Object());

//I am a Object



たしかに検証しましたが本当に↑の通りでした

さらに、これは下記のようにAS2でクラスを作成し試しても問題なくtraceできました。

// Testクラス Test.as
class Test{
	function toString():String{
		return "Testクラスのインスタンスです";
	}
}
// Testインスタンスの生成、フレームアクション
var a = new Test();
trace(a); // Testクラスのインスタンスです


そこで疑問なのは、この traceはtoStringメソッドを呼び出す、という仕様を明記している部分をご存知の方っていますか?
であれば、デバッグのためにもtoStrignメソッド実装を積極的に行っていこうかな(AS2)と思っているのですが、AS3の実装は大丈夫なのでしょうか?

よろしくお願いします。
野中文雄
Åê¹ÆNo.32801
投稿日時: 2007-4-7 2:16
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 自作クラスのインスタンスのtraceとtoStringメソッドについて
ActionScript 3.0についての記述ですが、実際の動作結果から見ても2.0/1.0も同様だと考えます。

Flex 2リファレンスガイド「trace()関数」より引用:
traceステートメント内の引数にString以外のデータ型が含まれている場合は、trace関数によって、そのデータ型に関連付けられたtoString()メソッドが呼び出されます。

参考: Flash Professional 9 ActionScript 3.0 Preview「trace() function
引用:
ながながいさんは書きました:
そこで疑問なのは、この traceはtoStringメソッドを呼び出す、という仕様を明記している部分をご存知の方っていますか?
であれば、デバッグのためにもtoStrignメソッド実装を積極的に行っていこうかな(AS2)と思っているのですが、AS3の実装は大丈夫なのでしょうか?


----------------
 

ながながい
Åê¹ÆNo.32812
投稿日時: 2007-4-7 11:03
半人前
居住地: 京都
投稿: 30
使用環境:
WindowsXP SP2,
Flash CS3, Flash8
Re: 自作クラスのインスタンスのtraceとtoStringメソッドについて
野中さん、ありがとうございます!
僕は AS2 での記載のあるドキュメントばかり探していましたが、AS3 のドキュメントにはあったんですね
まだまだ先の予定ですが、AS3への移行の不安材料が1つ減りました。

ちなみに今さらながら toString メソッドのことを聞いているのは、
海外の人の AS2 クラスのソースに、よく toString が実装されていたからです。

僕はクラスを作るときは、わざわざデバッグ用に debug メソッドを
実装したりするんですが、このことを先に知っていれば・・・
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops