搜尋部落格文章

2011年12月29日 星期四

TextField 判斷不同字元 套用不一樣的 TextFormat

//正規表達式判斷字串中包含數字
GlobalData.numberRegExp=/\d/g;

override public function set text(value:String):void {
   if (value != null) {
    this.visible = false;
    //super.text = value;
    var numTf:TextFormat;
    var indexArr:Array = [];
    trace("override set text :" + value);
    
    switch (Main.languageType) {
     
     case LanguageType.en_US:
      super.text = value;
      break;
     
     case LanguageType.zh_TW:
      
      if (GlobalData.numberRegExp.test(String(value))&&value.length>0) { //若字串內包含數字(1~more)
       
       numTf = this.getTextFormat(); //copy default format
       numTf.font = GlobalData.font2.fontName;
       indexArr = searchCharCode(value).concat();
       super.text = value;
       for (var j:int = 0; j < indexArr.length; j++) {
        
        this.setTextFormat(numTf, indexArr[j], (indexArr[j] + 1));
       }
       
      }else {
       super.text = value;
      }
      break;
    }
    
   } else {
    trace("value == null");
   }
   this.visible = true;
   return;
  }
  
  //搜尋字元
  private static function searchCharCode(str:String):Array {
   var tempArr = [];
   
   for (var i:int = 0; i < str.length; i++) {
    if (str.charCodeAt(i) >= 46 && str.charCodeAt(i) <= 57) {
     tempArr.push(i);
    }
   }
   return tempArr;
  }

沒有留言:

張貼留言