顯示具有 TextFieldType 標籤的文章。 顯示所有文章
顯示具有 TextFieldType 標籤的文章。 顯示所有文章

2010年11月14日 星期日

[AS3] TextField.restrict屬性

restrict : String  預設值為 null。
指出使用者能夠輸入文字欄位中的字元組。
此例:aTf.restrict = "A-Z a-z 0-9 \\- \\_ \\^";

指定使用者可以在輸入文字欄位中鍵入的字元,可以允許特定字母、數字或是某範圍的字母、數字和字元

如果 restrict 屬性的值是 null,表示可以輸入任何字元。
aTf.restrict = null;

如果 restrict 屬性的值是空字串,則不能輸入任何字元。
aTf.restrict = "";

可以使用連字符號 (-) 字元指定範圍。指定所有大小寫字母、數字,和破折號(-)、底線(_)、跳脫字元 (^)。
aTf.restrict = "A-Z a-z 0-9 \\- \\_ \\^";

如果字串以跳脫字元 (^) 開始,會接受所有的字元,但字串中的後續字元則會排除在接受的字元組之外。
aTf.restrict = "^abc";

如果字串不是以跳脫字元 (^) 開始,便不會接受任何字元,並且字串中的後續字元都會包含在接受的字元組內。
aTf.restrict = "abc";

這個例子,包含所有字元,但排除小寫字母:
aTf.restrict = "^a-z";

^ 可以在字串中的任何一處使用,用以切換包含的字元及排除的字元。下列程式碼只包含大寫字母,但排除大寫字母 Q:
aTf.restrict = "A-Z^Q";

您可以使用反斜線來逐字輸入 ^ 或 -。 接受的反斜線序列為 \-、\^ 或 \\。 反斜線必須是字串中的實際字元,因此當您在 ActionScript 中指定它時,就必須使用雙反斜線。 例如,以下的程式碼只包含破折號 (-) 和跳脫字元 (^):
aTf.restrict = "\\-\\^";

Script 可以將任何文字放入文字欄位中。
這個屬性不會與「屬性」檢測器中的「嵌入字體」選項同步化。


可以使用連字符號 (-) 字元指定範圍。指定所有大小寫字母、數字,和破折號(-)、底線(_)、跳脫字元 (^)。
aTf.restrict = "A-Z a-z 0-9 \\- \\_ \\^";
以下輸入字元,受限於A-Z a-z 0-9 - _ ^



package  {
 //
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.display.Sprite;
 public class TextField_restrict_991114_1 extends Sprite {
  //
  private var aTf:TextField = new TextField();
  //
  public function TextField_restrict_991114_1() {
   //
   aTf.type = TextFieldType.INPUT;
   //可以使用連字符號 (-) 字元指定範圍。指定所有大小寫字母、數字,和破折號(-)、底線(_)、跳脫字元 (^)。
   aTf.restrict = "A-Z a-z 0-9 \\- \\_ \\^";
   
   aTf.background = true;
   aTf.x = 100;
   aTf.y = 100;
   aTf.width = 300;
   aTf.height = 20;
   
   addChild(aTf);
  }
 }
}


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.TextField.ristrict

[AS3] 擷取文字輸入,並顯示於另一TextField類別實體

TextField.addEventListener(TextEvent.TEXT_INPUT, textInputHandler)
每當使用者在文字欄位中輸入文字,或在 HTML 文字欄位中按下超連結時,物件就會傳送 TextEvent 物件。
注意:Delete 或 Backspace 鍵不會傳送這個事件。

於黃色文字欄位輸入文字,輸入之文字將出現在白色文字欄位,但英文字元的出現會慢一個字元,
中文字則可同步。但貼上剪貼簿內中文字也會慢一步顯示。



package 
{
 //
 import flash.display.Sprite;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.text.TextFieldAutoSize;
 import flash.events.TextEvent;
 import flash.display.Stage;
 //'
 public class Text_INPUT_1 extends Sprite
 {
  //
  private var inputTf:TextField = new TextField();
  private var outputTf:TextField = new TextField();
  private var inputStr:String = "在這裡鍵入文字";
  //
  public function Text_INPUT_1()
  {
   captureText();
  }
  //
  private function captureText():void
  {
   inputTf.type = TextFieldType.INPUT;
   inputTf.background = true;
   inputTf.backgroundColor = 0xffff00;
   inputTf.autoSize = TextFieldAutoSize.LEFT;
   inputTf.width = 260;
   inputTf.wordWrap = true;
   inputTf.x = 10;
   inputTf.y = 10;
   addChild(inputTf);
   inputTf.text = inputStr;
   //***Delete 或 Backspace 鍵不會傳送TEXT_INPUT事件。
   inputTf.addEventListener(TextEvent.TEXT_INPUT, textInputCapture);
  }
  //
  private function textInputCapture(e:TextEvent):void
  {
   //var str = inputTf.text;
   var str = e.currentTarget.text;
   creatOutputFt(str);
  }
  //
  private function creatOutputFt(str:String):void
  {
   outputTf.background = true;
   outputTf.autoSize = TextFieldAutoSize.LEFT;
   outputTf.width = 260;
   outputTf.wordWrap = true;
   outputTf.x = 280;
   outputTf.y = 10;
   addChild(outputTf);
   outputTf.text = str;
  }

 }

}


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.events.TextEvent.TextEvent

適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.TextFieldAutoSize