0

配列とテキストファイル型の入力が 1 つあります。

myarray=["h","e","l","l","o"];

「h」、「e」、「o」を1回だけ入力し、「l」を2回入力するだけでテキストフィールドに入力できます

これは可能ですか?

4

3 に答える 3

0

あなたの質問はかなり難解ですが、できる限り答えようと思います。

TextFieldrestrictには、許容される入力を制限する組み込みのプロパティがあります。

これは、次のようなことができることを意味textField.restrict = "helo";し、ユーザーは文字 h、e、l、および o のみを入力できます。

これは、ユーザーに「こんにちは」という単語だけを入力してもらいたいように見えるという事実に対処していません。そのためには、ユーザー入力が入ってくるとそれをキャプチャし、不要な文字を防ぐ必要があります。

import flash.text.TextField;
import flash.text.TextFieldType;
import flash.events.TextEvent;

var restrictionArray:Array = "hello".split("");
var currentLetterIndex:int = 0;
var restrictedTextField:TextField = new TextField();
addChild(restrictedTextField);
restrictedTextField.restrict = "helo";

restrictedTextField.type = TextFieldType.INPUT
restrictedTextField.width = 100;
restrictedTextField.height = 30;
restrictedTextField.addEventListener(TextEvent.TEXT_INPUT, onKey);
function onKey(e:TextEvent):void {
    if(currentLetterIndex < restrictionArray.length && e.text == restrictionArray[currentLetterIndex])
    {
        currentLetterIndex++;
    }
    else
    {
        e.preventDefault();
    }
}

restrictionArray上記のコードは、とを介して、次にどの文字が来るかを追跡しcurrentLetterIndexます。一致しない文字は、メソッドTextFieldを使用して に入力されません。preventDefault

于 2013-10-30T22:02:17.373 に答える
0

試して見つけました。別の回答をありがとう

import flash.text.TextField;

var tf:TextField = new TextField  ;
tf.border = true;
tf.type = "input";
addChild(tf);
tf.addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown);
var dizi:Array = "hello".split("");
var yazilan:Array=new Array();
function reportKeyDown(event:KeyboardEvent):void
   {
       tf.restrict = dizi.toString();
       var harfsira:int;
       harfsira = dizi.indexOf(String.fromCharCode(event.charCode));
       trace(harfsira);
       trace("character: " + String.fromCharCode(event.charCode) +         " (key code: " + event.keyCode + " character code: "         + event.charCode + ")");
           if (harfsira >-1)
               {
                  yazilan.push(String.fromCharCode(event.charCode));
                  dizi.splice((harfsira),1);
                  trace(yazilan.toString()+" "+"input character");
                  trace(dizi.toString()+" "+"restrict characters");
              }
              else
              {
                  trace("end of restrict character");
              }
    }
于 2013-11-03T10:29:08.847 に答える