- ベストアンサー
Flash初心者がふたつのダイナミックテキストを表示させたい
- SuzukaでFlash作成をしている初心者が、ふたつのダイナミックテキストの表示方法について教えてください。
- 現在勉強中の初心者が、実験的なものを作っている中で、ふたつのダイナミックテキストの表示がうまくいかない状況です。
- scoreとmessageの表示が同時に増えるようにするための方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「function」は SWF4(携帯用Flash) では通用しません。 と言うことは, 作成しようとされている SWF は,SWF6以上(SWF8以下)ですよね? そうだとするなら ご質問本題の回答以前の問題で, まずテキストフィールドに変数名を付けること自体が間違ったやり方です。 テキストフィールド に変数名を付けるのは Suzuka の場合は SWF4 を作成するときのみです。 (Adobe(Macromedia) Flash の場合は Flash Player 5 用以下の SWF をパブリッシュするときのみです。) 要するに昔の遺物で, テキストフィールド に変数名を付けた Flash は不具合が多々起こります。 (今回のご質問の件の不具合とは全く別の不具合です。) 「テキストフィールドのインスタンス名と変数名について」 http://help.adobe.com/ja_JP/AS2LCR/Flash_10.0/help.html?content=00000270.html > 変数名をダイナミックテキストフィールドや > テキスト入力フィールドに割り当てることができます。 > これによって、変数に値を割り当てることができます。 > これは、旧バージョンの Flash Player (Flash Player 4 など)用 > のアプリケーションを作成するときに使用する可能性のある > 非推奨の機能です。 ~~~~~~~~~~~~ SWF6 以上では ダイナミックテキストフィールドには "インスタンス名" を付けて ダイナミックテキストインスタンス.text = ○○; でテキストフィールド内に○○を表示させます。 ダイナミックテキストインスタンス.text = ○○; この意味をもうちょっと厳密に書くと 「ダイナミックテキストインスタンスのtextプロパティに○○という値を代入せよ」 となります。 Suzuka の場合は さらにこうすることによって シンボルリスト内のダイナミックテキストを 1つにできるというメリットも増えます。 ご質問本題に関してですが テキストフィールドの中の文字列を使ってさらに演算を繰り返すこともできます。 しかしそれは普通はしません。 「演算は演算」です。 そして 「その演算結果をテキストフィールドに表示する。」です。 このように別々に処理(キッチリと明示的に処理)をするのが一般的な方法です。 シンボル名「スコアスプライト」(インスタンス名「scoreBoard」)内には 例えば「message_txt」というインスタンス名を付けたダイナミックテキストと 「score_txt」というインスタンス名を付けたダイナミックテキストとを用意します。 また変数名は削除します。 その場合の 「スコアスプライト」内のフレーム1のスクリプト変更例です↓。 //---------------------------------- this.score = 0; this.message_txt.text = this.score_txt.text = this.score; function scorePlus() { this.score ++; this.message_txt.text = this.score_txt.text = this.score; } //---------------------------------- もし 演算用の変数(上記の場合のscore)は用意せずに テキストフィールド内の表示文字列を軸にして演算を繰り返す場合は 次のようになります(普通はしない方法)。 //---------------------------------- this.message_txt.text = this.score_txt.text = 0; function scorePlus() { this.score_txt.text = Number(this.score_txt.text) + 1; this.message_txt.text = this.score_txt.text; } //----------------------------------
お礼
動きました! やったー!! とても丁寧な解説をありがとうございました! あまりに詳しく書いてくださったので、私もきちんと理解せねばと、 妙なプレッシャーを感じてしまいました。。。 SWFのバージョンについての記載がなくて申し訳ありません。 普段、私はそれをまったく気にしていなかったんです。 なのに、それが問題の根本だったなんで、本当に驚きです。 勉強になりました! ダイナミックテキストに変数名を付ける方法は、 手持ちのフラッシュの書籍で知ったのですが、 この本も確かに古いものかもしれませんね。 近いうちAS3.0の勉強も始めなきゃなのに、なんだか先行き不安です。 でもがんばります! 本当にありがとうございました!!!