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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     AS3.0/objectがdynamicかstaticかを調べるメソッドは?
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
joyko
Åê¹ÆNo.43749
投稿日時: 2009-10-19 23:19
常連
居住地: 埼玉県
投稿: 167
使用環境:
WinXP(SP3)
Flash8 Basic
FlashCS3
Flash CS4
AS3.0/objectがdynamicかstaticかを調べるメソッドは?
皆さん、いつもお世話になってます。
メインタイムラインのgotoAndStop("ラベル名");を例に採ります。
this.gotoAndStop("");//正常稼働
MovieClip(root).gotoAndStop("");//rootを、dynamicなMovieClipに、キャストすれば、正常稼働
root.gotoAndStop("");//rootは、staticなクラスなので、エラーとなる。

ということは、理解出来るのですが、object型(dynamicかstaticかも含めて)を調べるメソッドは、どのようなものがあるでしょうか?
以下、知っている方法で、調べましたが、以下の方法ですと、thisとrootの差がわかりません。


//以下、タイムラインに記載
trace(this+":"+MovieClip(root)+":"+root);//3つとも、[object Main TimeLine]と出力
trace(this is MovieClip);//互換性があるという意味で、trueと出力
trace(root is MovieClip);//trueと出力
trace(typeof  this);//typeofは、非推奨ということですが、一応、動きます。objectと出力
trace(typeof root);//objectと出力


ご教授頂けると、助かります。
野中文雄
Åê¹ÆNo.43750
投稿日時: 2009-10-20 0:21
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: AS3.0/objectがdynamicかstaticかを調べるメソッドは?
何か勘違いもしくは混乱がありませんか?問題は、オブジェクトの属する「クラス」やそのクラスの属性ではないように思われます。オブジェクトを代入した変数や、その参照にアクセスしたプロパティの「データ型」指定ではないでしょうか。
var my_mc:MovieClip = new MovieClip();
var mySprite:Sprite = my_mc;
my_mc.test = "test";
trace(my_mc.test);
// trace(mySprite.test);
trace(my_mc === mySprite);

引用されたスクリプトはおそらくメインタイムラインに書かれているようですので、thisrootも同じオブジェクトで、単にデータ型の設定が違うだけです。いわば容れ物が異なるだけで、中身は同じですから区別のしようはありません。

容れ物つまり「データ型」がどう指定されているかは、[ヘルプ]でそのプロパティを調べるか、変数は宣言の型指定を確かめるしかないでしょう。中身を別のデータ型の違う容れ物に入れて扱えるかどうかは、isas演算子を使って判別・評価することはできると思います。


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

joyko
Åê¹ÆNo.43752
投稿日時: 2009-10-20 0:47
常連
居住地: 埼玉県
投稿: 167
使用環境:
WinXP(SP3)
Flash8 Basic
FlashCS3
Flash CS4
Re: AS3.0/objectがdynamicかstaticかを調べるメソッドは?
野中さん、
さっそくのご回答ありがとうございます。
失礼しました。
object型ではなく、data型を調べるメソッドをお聞きしたかったのですが、言葉を間違えました。

容れ物つまり「データ型」がどう指定されているかは、[ヘルプ]でそのプロパティを調べるか、変数は宣言の型指定を確かめるしかないでしょう。

このご回答で、納得いたしました。やはり、「ヘルプ」なのですね。ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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