• ベストアンサー

テキストフィ-ルドの文字削除 Actionscript2.0

Actionscript2.0で開発をしています。 ユーザーによってテキストフィールドに入力された文字を ボタンによって"1文字削除する"事ができる 文字の削除ボタンを作成するには どういった関数を使えばよいでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

「どう1文字ずつ削除するのか」 によって変わると思います。 「テキストフィールドの文字列の後(右)から1文字ずつ削除」 「テキストフィールドの文字列の前(左)から1文字ずつ削除」 「テキストフィールドの文字列をランダムに1文字ずつ削除」 「テキストフィールドの文字列をABC…あいう…順に1文字ずつ削除」   などなど よくわかりませんので, 「テキストフィールドの文字列の後(右)から1文字ずつ削除」 という例を書きます。 新規ドキュメントを作成して, 次のスクリプトをフレーム1にコピペして 「制御」→「ムービープレビュー」です。 ////////////////////////////////////////////////////////////////////////////// // 適当に TF というテキストフィールドをステージ上に作成したとする this.createTextField("TF", 0, 50, 100, 0, 0); TF.border = true; TF.autoSize = true; // テキストフィールドに「あいうえお」が入力されていたとする TF.text = "あいうえお"; // // ------ // // 適当に赤いボタン(この場合ムービークリップ)を // ステージ上に作成したとする var BTN:MovieClip = this.createEmptyMovieClip("BTN", 1); BTN.beginFill(0xFF0000, 100); BTN.moveTo(50, 200); BTN.lineTo(150, 200); BTN.lineTo(150, 250); BTN.lineTo(50, 250); BTN.lineTo(50, 200); // // ---↓本題はココだけ↓--- // // 赤いボタンをクリックしたときの動作定義 BTN.onRelease = function():Void { // テキストフィールドの文字を右から消す TF.text = TF.text.substr(0, TF.text.length-1); }; //////////////////////////////////////////////////////////////////////////////   

yolayola
質問者

補足

毎度、勉強になります! length-1 で実現できるとは知りませんでした。 flash技術者の方でしょうか? ありがとうございました。助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1 です。 > length-1 > で実現できるとは知りませんでした。 私も知りませんでした。 と言いますか, 知ってる知らないではなくて, 考えるとそうなるのです(そういうのも方法の1つです)。 あと『「length-1」で取得』しているのではありませんよ。 誤解されている気もするので  // テキストフィールドの文字を右から消す  TF.text = TF.text.substr(0, TF.text.length-1); について補足します。 簡単なところから スクリプトを進化させて説明します。 // テキストフィールド TF に 「あ」 を表示 TF.text = "あ"; です。 // テキストフィールド TF に TF と同じ内容を表示 TF.text = TF.text; です。 // テキストフィールド TF に TF の左1文字を表示 TF.text = TF.text.substr(0, 1); です。 // テキストフィールド TF に TF の左から2文字を表示 TF.text = TF.text.substr(0, 2); // テキストフィールド TF に TF の左から右までを表示 // →TFの1文字目から全文字数文字を表示 TF.text = TF.text.substr(0, TF.text.length); // テキストフィールド TF に TF の左から(右-1)文字までを表示 // →TFの1文字目から(全文字数文字-1)文字を表示 TF.text = TF.text.substr(0, TF.text.length-1); だから結局 // テキストフィールドの文字を右から消す TF.text = TF.text.substr(0, TF.text.length-1); ということになります。 文字列.substr(開始位置, 開始位置からの文字数) という関数(この場合はメソッド)を知っていれば, あとはそれを考えて使えば良いということです。 いちいちそれがどのように使えるかなど知りませんし覚えてもいません。 だから 知っているとか知らないとかではなく, 考えて出すということになります。

yolayola
質問者

お礼

ご丁寧にありがとうございます。 要はひらめいたものを使ってやってみるって事ですよね。 この関数は知っていましたが、-1という使い方は思いつきませんでした。 時間が無くてテンパっていたので考える暇があまり無かったのですが、 それでもやはり、熟練している方でしたら すぐに思いつくようなひらめきなんだと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • テキストフィールドを入力・移動できるようにしたい。ActionScript3.0

    FlashCS3でActionScript3.0で配置されたテキストフィールドを、マウスドラッグで移動も、入力もできる部品を作成したいのですがうまくいきません。ダイナミックテキストフィールドではなくて、テキスト入力フィールドを配置しておけば入力はできますがマウスで移動もできるようにするにはどのようなActionScript3.0で対処すればよいでしょうか。 分かる方は教えて下さい。よろしくお願いします。

  • actionscript アルファベットを数値に変換できる?

    Flash Actionscriptの開発で困ってます。 テキストフィールド1とテキストフィールド2があります。それぞれのフィールドに入力されたアルファベットを数値に変換(例えばAと入力されたら1、Bなら2、Cなら3)して、A+B=3のように足し算して返すにはどうしたらよいでしょうか?? こういうのを覆面算?っていうんでしょうか。

    • ベストアンサー
    • Flash
  • ActionScript3.0にて質問になります。

    ActionScript3.0にて質問になります。 testfieldクラスにて、TestFieldType.INPUTを指定して、入力可能なテキストフィールドを作成し、入力する文字のサイズを大きくしたいのですが、TextFormat.sizeを指定しても、文字サイズがデフォルトサイズから変化ありません。 別の方法があるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 文字列をプログラムコードとして実行する方法

    Flash及びActionScriptの初心者です。 Flashで計算機のようなものを作成したいと思っており、 具体的な作りとしてはユーザに数式を入力してもらい、 回答ボタンで答えが表示されるというものです。 例えば、入力可能なテキストボックスに 「(5+3)*2」と入力しボタンを押下すると「16」が表示されるというようなものです。 以下質問です。 (1)入力された数式を文字列として格納した後に回答を出させる方法には  どのようなものがありますでしょうか。  (四則演算と括弧を対応させた場合の作りが解らないです・・・) (2)javascriptのeval関数の使用で対応可能でしょうか。  getURL、fscommand、ExternalInterfaceについて調べたのですが、  動的に戻り値を受け取る事どころか、  外部からjavascriptを呼び出す事すらできませんでした。 開発環境 FlashLite3.0 ActionScript2.0 情報足りない場合は補足しますので、どうかよろしくお願いします。

    • ベストアンサー
    • Flash
  • ActionScriptからのテキスト操作

    FlashMXをWindowsで使用しています。 テキストフィールドのインスタンス(文字)を ActionScriptで縁取りしたいのですが、 どなたかわかる方、ご教授くださいませ。 テキストを分解して、インクボトルツールで、 手作業で縁取りすることはできるのですが、 この効果をActionScriptで実現したいのです。 調べたところ、ユニクロのサイトで、 テキストフィールドの値を入力し、 動的に縁取りを生成しているんです。 ※ちなみに、これがそのユニクロのサイトのFLASHです。 http://www.uniqlo-tw.com/order/index.html スッテプ申込へ -> 次のステップへ -> デザインパターンでつくる んー、どうやってやっているんでしょう・・・。

    • ベストアンサー
    • Flash
  • ActionScriptとphpの連携について

    ActionScriptとphpの連携について質問があります ActionScriptで受け取った値をphpに送り、その値をphp(htmlに埋め込み)で表示させたいと考えています。 動作としましては、 ・あらかじめテキストボックスに文字列が入力されている ・ボタンをクリックする ・別ウィンドウが出現(getURLでphpファイルを表示)テキストボックスに入力されていた文字列が表示される ・phpのファイルでラジオボタンで項目を選択し送信ボタンを押す ・MySQLに接続、ActionScriptで受け取った値とラジオボタンで受け取った値をまとめてデータベースに保存 というものにしたいです。 ボタンをクリックするまではすべてFlashで実現させています。 Flash→php→Flashという流れで値を表示させる方法はわかるのですが、Flash→phpで表示させることは可能でしょうか もし可能であれば、どのように実現したらよろしいでしょうか 現在はLoadVarsクラスのLoadVars.sendAndLoad()を使っています ActionScriptは2.0です 至らないところもございますが、素早い回答をお願いいたします

    • ベストアンサー
    • Flash
  • ActionScriptエディタを作りたい!です…

    毎度お世話になっておりますsassakunと申します。 変な回答をすることがありフォローを入れていただきありがとうございます。 Flashカテゴリでの質問は初心者です。 訳あってActionScriptエディタを作成中です。 「Flash Player de ActionScript」(今閃いた仮称)。 大した物ではないです。 テキストエディタでスクリプトを作る事が多々あるのですが,定型句みたいなものをキーボードを叩くのが面倒です。 またifをIFと書いてしまったり書き間違いが多いです。 蛇のアイコンのソフトも知っていますが,あれはFlashより使い勝手が悪い。 それなら自分で作ってしまおうと思ったのです。 TXTという変数名のダイナミックテキストエリアを作成し,あるボタンをクリックすると,そのボタンのスクリプトで  on (release) {   TXT = TXT + "ActionScript(値)"  } みたいなスクリプトで, 変数TXTにどんどんスクリプトを加算していく方法で大体はできました。 大体と言うのは自分がよく使うスクリプトの範囲内という意味です。 でも上のスクリプトだとどうしても文字列の後に,"ActionScript(値)" が付いてしまいます。 そうではなくて,  onClipEvent (load) {  | (←マウスカーソルのつもり)  } のカーソル部分に _root.stop(); などというスクリプトが入れたい場合が多々あります。 タグ挿入型HTMLエディタならぬ,Script挿入型ActionScriptエディタです。 イメージをスクリプトにするなら, on (release) {  TXT1 = TXT の1文字目からカーソルまで;  TXT2 = TXT のカーソルから最終文字まで;  TXT = TXT1 + "ActionScript(値)" + TXT2; } みたいな感じです。 これを実現するActionScript,または方法はあるのでしょうか。 そんなことも知らないのか! などと思われそうな気もしますが,ここでの質問は初心者ですのでよろしくおねがいします。

    • ベストアンサー
    • Flash
  • ActionScriptで、空のステージにコンボボックスを作りたい

    Windows2000、Flash2004MXです ・ActionScriptで、空のステージにコンボボックスを作りたい 空のステージの任意の位置に、ActionScriptだけでコンボボックスを作成したいのですが、可能なのでしょうか? テキストフィールドなら、CreateTextFieldで、のように。

  • Actionscriptで簡単な換算表を作りたいのですが

    ある単位を別の単位に換算するプログラムを作ろうと思っているのですが、 ActionScriptを何処にどう記述すればいいのかが分かりません。 具体的な仕組みとしては、 「□ヤード」の□部分(テキスト入力)に数字を入力し「換算」ボタンを押すと、 「■メートル」の■部分(ダイナミックテキスト)に換算された数値が表示される、 というものが作りたいのです。 1ヤードが何メートルか、ということや、変数を利用するということ・ボタンに「on (release) {}」を記述するということまでは分かっています。 自分なりにも、Actionscript関係のHPを見て調べようとしたのですが、残念ながら見つからなかった次第です。 御教授のほど宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 文字列から、特定の文字を削除したい

    アンケートで入力された値を受け取り、メールで送信しているのですが、受け取った値から、特定の文字列を削除することは可能でしょうか? 例えば電話番号の入力の場合、 03-xxxx-xxxx →03xxxxxxxx 077-xxx-xxxx →077xxxxxxx のように、-(ハイフン)が入力されていたら、-を削除した文字列に置換してメール送信したいのです。 入力する時に、3つのテキストエリアに分けるのは諸事情でできないので、特定の文字を削除する関数か処理方法がありましたら、教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • プリンターの画面が真っ白になる問題についての質問です。
  • らくちんプリント3.0を使ってうちわの作成を始めたが、途中で画面が真っ白になる現象が発生して作業が進められない。
  • 同じ現象が複数回発生しており、原因と対処法を知りたい。
回答を見る