- ベストアンサー
動的に生成したテキストのカラー変更とリンクしたムービークリップの配置方法
- 動的に生成したテキストのカラーをtimerで変更する方法について質問しています。3つのムービークリップをstageに配置し、その中には番号を表示するテキストボックスがあります。timerで5秒ごとに0⇒1⇒2の順番でカラーを変えたいと考えていますが、ムービークリップにアクセスする方法がわかりません。
- 現在のフォーカスが当たっているムービークリップだけ別の色にするため、配列アクセス演算子やchildnameを試しましたがうまくいきませんでした。
- コードの抜粋を示しており、アイコンの生成と配置、スライドタイマーの設定、タイマーイベントの処理を行っています。ただし、タイマーイベント内のアイコンのカラー変更部分の記述がわかりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 0⇒1⇒2と現在フォーカスが当たっているものだけ > 別の色にするというもの ↑この部分の意味が全くわかりません。 (フォーカスが当たっているものって普通は1つでは???) とりあえず上で書いた部分は無かったことにします。 =============== 上のことは無いものとして さらにもっともっと問題をシンプルにしませんか? 書かれたスクリプトを次のようにするとどうなりますでしょう? -------------------------- for (var i = 0; i < 3; i++) { var icon = new Icon(); icon.x = i * 20; icon.num.text = i; addChild(icon); } icon.x = 200; -------------------------- 別の3つの Icon クラスのインスタンスに 同じ名前(同じ参照変数名)を付けたら 3つ全てを管理できなくなるでしょう? 「文字の色」とか「Timer」とか そういう問題以前のことだと思います。 上のスクリプトを次のように変えれば問題(解決策)が見えてきませんか? ------------------------------- for (var i = 0; i < 3; i++) { this["icon" + i] = new Icon(); this["icon" + i].x = i * 20; this["icon" + i].num.text = i; addChild(this["icon" + i] ); } this.icon0.x = 0; this.icon1.x = 100; this.icon2.x = 200; ------------------------------- または,次のように変えてみましょう。 ------------------------------- for (var i = 0; i < 3; i++) { this["icon" + i] = new Icon(); this["icon" + i].x = i * 20; this["icon" + i].num.text = i; addChild(this["icon" + i] ); } for (i = 0; i < 3; i++) { this["icon" + i].x = i * 100; } ------------------------------- Google検索「配列アクセス演算子」 http://www.google.co.jp/search?hl=ja&q=%E9%85%8D%E5%88%97%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%BC%94%E7%AE%97%E5%AD%90
お礼
いつもありがとうございます。 なるほど。。。 そもそも、動的に生成されたmovieClipが 偶然できていただけで、ちゃんと名前のついたものが、 できたわけではなかったんですね。。。 だから、いくらやってもアクセスできなかったんですね。。。 助かりました。 ありがとうございます!!