メイン ActionScript 3.0 特設会議室 classからrootの変数へアクセスしたい | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
k-suzuki | Åê¹ÆNo.36578 投稿日時: 2007-11-30 23:19 |
新米 居住地: 東京 投稿: 7
使用環境:
windowsXP,CS3 |
classからrootの変数へアクセスしたい FLASH CS3で開発を行っているのですが、
疑問に思った点がありまして、 書き込みをさせていただきます、 音のファイルを管理しているclassがありまして、 各フレームにはそれを配置して、 音がなるように制作しました。 その後、最終的な仕様変更で、rootにある変数を見て、 音をならすか、ならさないかに分岐しなければ いけなくなったのですが、 簡単な方法として、class側からrootにある変数を見て、 分岐させようと思いました。 (as2で言う、_root.bSndFlag と参照するような形で) ですが、class側に、 rootObj:Object = this.root; 等を書いても、 「未定義のプロパティrootへのアクセスです」 と出てしまい、アクセスすることが出来ませんでした。 classはrootの定義を持っていないと 言うことだと思うのと、そもそも、 classから上の階層へアクセスするのは、 何か順列的に変なような気はするのですが、 何か方法はあるものなのでしょうか? もしご存じの方がいらっしゃいましたら、 教えていただければ嬉しいです。 まだ慣れないas3に苦戦中の毎日です・・・ |
野中文雄 | Åê¹ÆNo.36579 投稿日時: 2007-12-1 0:52 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: classからrootの変数へアクセスしたい rootは、DisplayObjectクラスのプロパティです。しかも、「そのオブジェクトがディスプレイリストに加わっていなければ、nullが設定されます」。
メインタイムラインにアクセスする必要がある場合には、クラスのコンストラクタ呼出し時にそのタイムラインを引数として渡すのがよいでしょう。 引用: k-suzukiさんは書きました: |
k-suzuki | Åê¹ÆNo.36581 投稿日時: 2007-12-1 12:00 |
新米 居住地: 東京 投稿: 7
使用環境:
windowsXP,CS3 |
Re: classからrootの変数へアクセスしたい 野中様、早速のご返信、どうもありがとうございます。
そうですよね、やはりそうするしか、 アクセスする方法は無いですよね・・。 何かglobal的な物で、とにかくどんな時でも、 as2のように、rootにアクセスできるような物が あるかもしれない・・と考えていたのですが・・。 ・・余談ではありますが、Directorを使っていた昔から、 野中様の著書は何度も拝見させていただいてました。 ご意見を頂け、とても嬉しく思います。 それでは、どうもありがとうございました。 |
STWKS | Åê¹ÆNo.37111 投稿日時: 2008-1-9 13:22 |
新米 居住地: 投稿: 2
使用環境:
Mac OSX 10.5.1, Flash CS3 |
Re: classからrootの変数へアクセスしたい 今更ではありますが、AS2の_globalのようなことをしたい場合に私は以下のようなクラスを作って必要な箇所でimportして使っています。どこからでも値を変更できて、どこからでもCHANGEイベントのリスナーを登録できます。
SWFAddressのソースを参考にして作ったものです。
このコードは適当に書いたのでちゃんと動くかためしてませんが、こんなやり方で実際に動かしたことはあります。 |
k-suzuki | Åê¹ÆNo.37333 投稿日時: 2008-1-25 13:06 |
新米 居住地: 東京 投稿: 7
使用環境:
windowsXP,CS3 |
Re: classからrootの変数へアクセスしたい ご返信が遅くなってしまってすみません!
コードの方、どうもありがとうございます! 今週末にでも、自分の環境で実行してみたいと思います。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |