- ベストアンサー
テキストフィールド内で文字を足したり引いたりしたい
- テキストフィールド内で文字を足したり引いたりする方法について教えてください。ボタンを使って文字を追加することはできますが、一部の文字を削除する方法がわかりません。
- テキストフィールド内の特定の文字を削除する方法について教えてください。現在、ボタンを使って文字を追加することはできますが、特定の文字を削除する方法がわかりません。
- テキストフィールド内で文字を足したり引いたりする方法について教えてください。ボタンを使って文字を追加することはできますが、特定の文字を削除する方法がわかりません。どなたか教えていただけませんか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
単純には, AAA を表示させるボタンに -------------------------------- on (release) { _root.key_text = "AAA"; } -------------------------------- と書けば良いだけです。 「+=」 という加算後代入演算子を使わずに, 普通に「=」という代入演算子を使えば良いだけです。 =================== しかし,ご質問の本題はそういうことではないのでしょうね。 「あういえおAAABBB」 となってしまった文字列から, BBBを抜き取りたいということだと思います。 それは,置換の一種です。 「BBB」 という文字列を,「」(つまり何も無し)に置換すれば良いのです。 -------------------------------------------- on (release) { // 「BBB」 を 「」 で置換 _root.key_text = _root.key_text.split("BBB").join(""); _root.key_text += "AAA"; } -------------------------------------------- 厳密には置換ではなく, もし文字列が 「AAABBBAAA」 であった場合, .split("BBB") で, 「AAA,AAA」 のように BBB を パーテーション として文字列を区切っておいて, .join(""); でその パーテーション を取っ払っているのです。 結果的に文字列置換になるという便利な方法です。 =================== ちなみに, 某 GAC さんのサイトを久しぶりに眺めておりますと, ご使用の Flash は Flash MX 2004 のようですね。 (あちらでは他コミュニティであってもマルチポストは半禁止にされていますよ。) (理由は言わずもがな,http://www.ippo.ne.jp/g/53.html =(他サイトですが。)) それはさておき, Flash MX 以降では,テキストフィールドには変数名ではなく, インスタンス名を使うようにして, そのインスタンスのテキストプロパティには「.text」 でアクセスする方が良いです。 「テキストフィールドのインスタンス名と変数名について」 http://livedocs.adobe.com/flash/8_jp/main/00001418.html > 変数に値を割り当てることができます。 > これは、旧バージョンの Flash Player (Flash Player 4 など) 用 > のアプリケーションを作成するときに使用する可能性のある > 非推奨の機能です。
その他の回答 (1)
#1です。 #1のお礼を拝見しましたが, そう言えばご質問にも, > ボタンAの2フレームには > on (release) { > _root.key_text -= "AAA"; > } > と書いています。 という意味不明なことを書かれていらしゃいますね。 これは単に 「フレーム2 の ボタンA には…」 の書き間違いだと勝手に推測していましたが, いったいどういうことなのですか? お礼にも, > 各ボタン1フレームの+を使った方法で文字を表示させていき、 > 各ボタン2フレーム目で… という意味不明なことを書かれていらっしゃいます。 ボタンシンボルのインスタンスには, フレーム1 や 2 などは存在しませんし, またムービークリップシンボルのインスタンスであっても, フレームに on (release) { } などという,onイベントハンドラは書けないはずです。 したがって, お礼に書かれていらっしゃることもさっぱり理解できません。 まずやってみて, split & join の方法が無理であれば無理であったで, 何をどうしたら何がどう無理なのかをわかりやすく構造を説明してください。 ここでは, テキストのやりとりでしか質問&回答ができないため, 質問される方もかなり大変だとは思いますが, なんとかわかるように状況を説明していただかないと, 状況がさっぱり理解できないのです...(困)。
お礼
お返事遅れて申し訳ありません。 >ボタンシンボルのインスタンスには, >フレーム1 や 2 などは存在しませんし, >またムービークリップシンボルのインスタンスであっても, >フレームに on (release) { } などという,onイベントハンドラは書け >ないはずです。 これは完全にこちらの説明不足です。 ボタンと言っているのは ボタンシンボルを使いヒットエリアを作ったものを mcに入れそのボタンシンボルにクリップアクションとして on (release) { }などを使いそのmc内で1フレーム目,2フレーム目を チェック前、チェック後としてgootoAndstopを使い 1フレーム目でクリックをするとテキストをkey_textへ表示し、 2フレーム目へ移動。 2フレーム目をクリックするとkey_textから1フレーム目で表示した文字を消し、1フレーム目へ。 という事をしています。 今は問題を解決しました。 今まではテキストの表示をボタンを押すごとに表示させたり 抜き出したりしていましたが、 テキストを表示させる為に他の新しくボタンを作り _root上でボタンがチェックされたものを数えさせ、 そのチェックに応じたもののキーワードを テキストフィールドにまとめて表示させるという方法を とり解決しました。 わかりずらい質問に快くお返事を下さったsassakunさん ありがとうございました。 次回からはきちんと状況を相手に伝えるような説明文を作り 質問するよう気をつけます。今回は本当にありがとうございました。
お礼
sassakunさん お忙しい時間の中ご説明ありがとうございます。 例えば一つのテキストフィールドkey_textに対し、 ボタンが複数存在する場合もこの方法で可能でしょうか? 各ボタン1フレームの+を使った方法で文字を表示させていき、 各ボタン2フレーム目でsassakunさんに教えて頂いたscript _root.key_text = _root.key_text.split("BBB").join(""); を使用し"BBB"にあたる””内をボタンごとに変える と言うのも毎回ボタンでテキストの表示を 各ボタンで指定しているキーワード及びボタンの量が増えても 特定の文字だけを消し、ほかのキーワードは表示されたままに したいのです。