配列とテキストファイル型の入力が 1 つあります。
myarray=["h","e","l","l","o"];
「h」、「e」、「o」を1回だけ入力し、「l」を2回入力するだけでテキストフィールドに入力できます
これは可能ですか?
配列とテキストファイル型の入力が 1 つあります。
myarray=["h","e","l","l","o"];
「h」、「e」、「o」を1回だけ入力し、「l」を2回入力するだけでテキストフィールドに入力できます
これは可能ですか?
あなたの質問はかなり難解ですが、できる限り答えようと思います。
TextField
restrict
には、許容される入力を制限する組み込みのプロパティがあります。
これは、次のようなことができることを意味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
試して見つけました。別の回答をありがとう
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");
}
}