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

2011年7月15日 星期五

文字欄位的捲動_TextField.scrollV

TextField.scrollV
垂直捲動的單位是字行,水平捲動的單位則是像素。 如果顯示的第一個字行是文字欄位中的第一個字行,scrollV 便會設定為 1 (而非 0)。
URLLoader.load()方法
public function load(request:URLRequest):void
從指定的 URL 傳送並載入資料。根據 dataFormat 屬性值,能以文字、原始二進位資料或 URL 編碼之變數的形式接收此資料。dataFormat 屬性的預設值為文字。
bottomScrollV屬性
bottomScrollV:int [唯讀]
整數 (從 1 開始的索引),指出目前在指定之文字欄位中,可以看見的最底端字行。 將文字欄位視為文字區塊上的視窗。 scrollV 屬性是視窗中,最頂端之可見字行的索引 (從 1 開始)。
在文字欄位中,scrollV 與 bottomScrollV 字行間的所有文字目前都是可見的。

※ 載入外部文字檔,由TextField讀取,倆顆按鈕控制向下和向上捲動文字行

1000714_TextField.scrollV.swf


package  {
 
 import flash.display.MovieClip;
 import flash.text.TextField;
 import flash.net.URLRequest;
 import flash.net.URLLoader;
 import flash.events.Event;
 import flash.display.SimpleButton;
 import flash.events.MouseEvent;
 import flash.display.DisplayObject;
 import flash.net.URLLoaderDataFormat;
 import flash.events.IOErrorEvent;
 import flash.errors.IOError;

 public class Main extends MovieClip {
  
  public var dynTF:TextField;
  public var str:String;
  public var nextBtn:SimpleButton;
  public var preBtn:SimpleButton;
  
  public function Main() {
   this.initURLLoader();
   
   /*滑鼠滾輪開關*/
   /*Boolean 值,指出當使用者按一下文字欄位並滾動滑鼠滾輪時,Flash Player 是否會自動捲動多行文字欄位。
   根據預設,這個值為 true。 如果想要防止滑鼠滾輪捲動文字欄位,或實作您自己的文字欄位捲動,這個屬性就會很有用。*/
   this.dynTF.mouseWheelEnabled = true;
   
   this.nextBtn.addEventListener(MouseEvent.MOUSE_DOWN,readNextLOOP);
   this.nextBtn.addEventListener(MouseEvent.MOUSE_UP,removeReadNextLOOP);
   this.preBtn.addEventListener(MouseEvent.MOUSE_DOWN,readPreLOOP);
   this.preBtn.addEventListener(MouseEvent.MOUSE_UP,removeReadPreLOOP);
   return;
  }
  
  private function initURLLoader():void{
   var urlReq:URLRequest = new URLRequest("http://dl.dropbox.com/s/y0eun5z88xxqw5e/1000714_TextField.scrollV_textStr2.txt");
   var urlLoader:URLLoader = new URLLoader();
   /**/
   urlLoader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
   /**/
   urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
   urlLoader.addEventListener(Event.COMPLETE,readData);
   /**/
   try{
    urlLoader.load(urlReq);
   }catch(error:Error){
    trace("Unable to load requested document.");
   }
   
   return;
  }
    
  private function readData(event:Event):void{
   var tmpLoader:URLLoader = event.currentTarget as URLLoader;
   /*this.str = tmpLoader.data.split("\r\n").join("\n");*/
   this.str = tmpLoader.data;
   trace(this.str);
   showText();
   return;
  }
  
  private function showText():void{
   this.dynTF.htmlText = this.str;
   trace("this.dynTF.maxScrollV : " + this.dynTF.maxScrollV);
   trace("this.dynTF.scrollV : " + this.dynTF.scrollV );
   trace("this.dynTF.bottomScrollV : " + this.dynTF.bottomScrollV );
   return;
  }
  
  private function readNextLOOP(event:MouseEvent):void{
   this.addEventListener(Event.ENTER_FRAME,this.readNext);
   return;
  }
  
  private function removeReadNextLOOP(event:MouseEvent):void{
   this.removeEventListener(Event.ENTER_FRAME,this.readNext);
   return;
  }
  
  private function readNext(event:Event):void{
   this.dynTF.scrollV += 1;
   trace("this.dynTF.scrollV : " + this.dynTF.scrollV );
   trace("this.dynTF.bottomScrollV : " + this.dynTF.bottomScrollV );
   return;
  }
  
  private function readPreLOOP(event:MouseEvent):void{
   this.addEventListener(Event.ENTER_FRAME,this.readPre);
   return;
  }
  
  private function removeReadPreLOOP(event:MouseEvent):void{
   this.removeEventListener(Event.ENTER_FRAME,this.readPre);
   return;
  }
  
  private function readPre(event:Event):void{
   this.dynTF.scrollV -= 1;
   trace("this.dynTF.scrollV : " + this.dynTF.scrollV);
   trace("this.dynTF.bottomScrollV : " + this.dynTF.bottomScrollV );
   return;
  }
  
  private function tween1(_targetObject:DisplayObject,_now:Number,_new:Number):void {
   return;
  }
  
  /**/
  private function ioErrorHandler(e:IOErrorEvent):void{
   trace("ioErroerHandler : " + e);
   return;
  }
 }
 
}

2010年11月30日 星期二

[AS3] 亂數隨機載入外部圖檔(輪播)_每一輪不重覆

外部有6個圖檔,依亂數載入。同一輪已載入過的就不再載入。第1輪播完再播第2輪......



//991228從991130_randomPhoto_1.fla修改

import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;
//載入Tweener、ColorShortcuts類別
//請至以下URL下載tweener類別程式庫與說明文件
//http://code.google.com/p/tweener/
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
//初始化ColorShortcuts
ColorShortcuts.init();

//****** photo陣列 - push() 加入外部圖檔檔名
var photo:Array = new Array();
photo.push("991130_p1.jpg");
photo.push("991130_p2.jpg");
photo.push("991130_p3.jpg");
photo.push("991130_p4.jpg");
photo.push("991130_p5.jpg");
photo.push("991130_p6.jpg");

//
var pNum:uint = photo.length;

//****** intervalDuration - 換圖秒數(毫秒)
//目前設為 5000豪秒,即 5 秒
var intervalDuration:Number = 5000;

//TextFormat物件設定文字格式
var aTextFormat:TextFormat = new TextFormat();
aTextFormat.size = 18;
aTextFormat.color = 0xffffff;
aTextFormat.leftMargin = 5;
aTextFormat.rightMargin = 5;
//宣告TextField文字欄位類別實體infoTextField
var infoTextField:TextField = new TextField();
infoTextField.x = 15;
infoTextField.y = 15;
infoTextField.background = true;
infoTextField.backgroundColor = 0xff2200;
infoTextField.autoSize = TextFieldAutoSize.LEFT;
//將 infoTextField 加入顯示清單
addChild(infoTextField);
//建構Loader類別實體ldr
var ldr:Loader = new Loader();
//
ini();
//
function ini():void
{
 loadPhoto();
}
//
function loadPhoto()
{
 //如果photo陣列元素都被移除掉了
 //以for迴圈重新加入各元素,即外部檔名,同初始值
 if(photo.length == 0){
  for (var i:uint=0; i < pNum; i++) { // pNum
   photo[i] = "991130_p" + String(i+1) + ".jpg";
  }
  trace("------------------------------------------");
 }
 
 //Math.random() 亂數產生0(含)~1(不含)之浮點數, 
 //乘以圖檔張數(即photo陣列長度 photo.length),會得到 0(含)~6(不含) 之符點數
 //Math.floor - 去掉小數 - 會得到0~5之正整數
 var photoRandom:uint = Math.floor(Math.random() * photo.length);
 //photo[photoRandom] - 因應亂數,做為陣列索引,指向陣列元素
 var photoURL:String = photo[photoRandom];
 //splice(起始索引, 刪除數量) - 刪除被選定的陣列元素
 //如此在每一循環載入圖檔,才不會重覆
 photo.splice(photoRandom, 1);
 trace(photoURL);
 //將photoURL所存的圖檔檔名字串指定給 infoTextField 文字欄位顯示
 infoTextField.text = photoURL;
 //setTextFormat()方法,將aTextFormat格式化物件與infoTextField文字欄位關聯
 infoTextField.setTextFormat(aTextFormat);
 //
 //Loader類別實體ldr,以load()方法載入new URLRequest()的相對網址(即圖檔檔名)
 ldr.load(new URLRequest(photoURL));
 //將Event.COMPLETE事件的偵聽程式onLoaderComplete,附加到Loader類別實體ldr的contentLoaderInfo屬性 
 ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}

//
function onLoaderComplete(e:Event):void
{
 addChild(ldr);
 //將ldr可視物件實體,以x,y座標控制在舞台中央
 ldr.x =  (stage.stageWidth - ldr.width) / 2;
 ldr.y =  (stage.stageHeight - ldr.height) / 2;
 //呼叫漸變屬性設定函式tweenPhoto1()
 tweenPhoto1();
 //setTimeout(closure:Function, delay:Number, ... arguments):uint
 //在指定的延遲時間 (以毫秒為單位) 之後執行指定的函數
 var intervalId:uint = setTimeout(ini, intervalDuration);
}
//
function tweenPhoto1():void{
 Tweener.addTween(ldr, {alpha:0, scaleX:0.9, scaleY:0.9, time:0, onComplete:tweenPhoto2});
} 
function tweenPhoto2():void{
 Tweener.addTween(ldr, {alpha:1, scaleX:1, scaleY:1, time:1.5});
} 

◎另需參閱
指定類別檔路徑 - 以下載及設置Tweener類別庫為例 http://flash.twgogo.org/2010/12/blog-post.html

2010年11月21日 星期日

[AS3]StyleSheet與TextField - 將 StyleSheet 物件套用至含有 htmlText 屬性的文字欄位

var style:StyleSheet = new StyleSheet();建構一個樣式表物件
StyleSheet.setStyle(styleName:String, styleObject:Object):void
以指定的名稱,將新的樣式新增至樣式表物件。
TextField.styleSheet = StyleSheet Object;
將樣式表附加至文字欄位

  1. TextField文字欄位中不是純文字就是HTML文字。純文字的字串指定給TextField類別實體的text屬性;HTML文字的字串則指定給TextField類別實體的htmlText屬性。
  2. 以flash.text.StyleSheet類別來處理CSS宣告。new StyleSheet()建構StyleSheet物件。之後透過一組物件來定義樣式屬性及其值。呼叫StyleSheet.setStyle(對應的選擇器名稱字串, 樣式物件)方法。
  3. 將樣式表StyleSheet物件指定給文字欄位TextField類別實體的styleSheet屬性,將文字欄位以CSS樣式格式化。
  4. 含有樣式表的文字欄位無法再編輯。 若將文字欄位的 type 屬性設定為 TextFieldType.INPUT, StyleSheet會 套用到文字欄位的預設文字,但就無法再對內容進行編輯。 因此,若有輸入文字需求,則改用 TextFormat 類別,將樣式指定給輸入文字欄位。
  5. 程式碼重要順序→樣式屬性內容必須先設定,接著將樣式表套用至 TextField 物件,然後才能設定 htmlText 屬性,如此 CSS 樣式才能實際生效,表現在TextField的Html文字上。
  6. 下列 ActionScript API 無法在含有指定樣式表的文字欄位中使用:• TextField.replaceText() 方法• TextField.replaceSelectedText() 方法• TextField.defaultTextFormat 屬性• TextField.setTextFormat() 方法

SWF



//
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.StyleSheet;
//
var style:StyleSheet = new StyleSheet();
//
var styleObj_1:Object = new Object();
styleObj_1.color = "#ff0000";
styleObj_1.fontSize = 88;
style.setStyle(".red", styleObj_1);
//
var styleObj_2:Object = new Object();
styleObj_2.color = "#00ff00";
styleObj_2.fontSize = 66;
style.setStyle(".green", styleObj_2);
//
var styleObj_3:Object = new Object();
styleObj_3.color = "#0000ff";
styleObj_3.fontSize = 44;
style.setStyle(".blue", styleObj_3);
//
var tf:TextField = new TextField();
//
tf.styleSheet = style;
//
tf.htmlText = "< span class = 'red'>●RED< /span>< span class = 'green'>●GREEN< /span>
< span class = 'blue'>●BLUE< /span> text";
//
tf.x = 50;
tf.y = 8;
tf.width = 460;
//
tf.multiline = true;
tf.wordWrap = true;
tf.autoSize = TextFieldAutoSize.LEFT;
//

addChild(tf);
//style.clear();


Flash Player 支援原始 CSS1 規格 (www.w3.org/TR/REC-CSS1) 中屬性的子集。 請點擊下圖連結至Flash Help瀏覽所支援的「階層式樣式表」(CSS) 屬性和值,以及它們的對應 ActionScript 屬性名稱。


適用於 Adobe  Flash  Professional CS5 的 ActionScript  3.0 參考__flash.text.StyleSheet 類別
適用於 Adobe  Flash  Professional CS5 的 ActionScript  3.0 參考__flash.text.StyleSheet.setStyle()方法
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.TextField.styleSheet屬性

2010年11月18日 星期四

[AS3]TextField.getTextFormat(beginIndex, indIndex)方法

getTextFormat(beginIndex:int = -1, endIndex:int = -1):flash.text:TextFormat
會傳回 TextFormat 物件,包含 beginIndex 和 endIndex 參數所指定之文字範圍的格式資訊

UI組件Button的實體開啟了Toggle屬性,切換指定文字欄位tf3的TextFormat屬性



import fl.controls.Button;
import flash.events.Event;
import flash.text.TextFormat;
//
var tf1:TextField = new TextField();
tf1.autoSize = TextFieldAutoSize.LEFT;
tf1.text = "1.ABCDEFGHIJKLMNOPQRSTUVWXYZ";
tf1.x = 30;
tf1.y = 30;
tf1.background = true;
addChild(tf1);
//
var tf2:TextField = new TextField();
tf2.autoSize = TextFieldAutoSize.LEFT;
tf2.text = "2.ABCDEFGHIJKLMNOPQRSTUVWXYZ";
tf2.x = 50;
tf2.y = 60;
tf2.background = true;
addChild(tf2);
//
var tf3:TextField = new TextField();
tf3.autoSize = TextFieldAutoSize.LEFT;
tf3.text = "3.ABCDEFGHIJKLMNOPQRSTUVWXYZ";
tf3.x = 70;
tf3.y = 115;
tf3.background = true;
addChild(tf3);
//
var format1:TextFormat = new TextFormat();
format1.color = 0x0000FF;
format1.font = "04b_08";
format1.size = 24;
//
var format2:TextFormat = new TextFormat();
format2.color = 0xFF2255;
format2.font = "Times New Roman";
format2.size = 36;
//
var format3:TextFormat = new TextFormat();
format3.color = 0x662255;
format3.size = 42;
format3.font = "Orator Std";
//trace(format3);
//
var startRange:int = 7;//啟始字元 (0 base)
var endRange:int = 12;//結束字元+1 (0 base)
tf1.setTextFormat(format1);
tf2.setTextFormat(format2, startRange);
tf3.setTextFormat(format3, startRange, endRange);

//new運算子建構Button組件實體myButton
var myButton:Button = new Button();
addChild(myButton);
myButton.width = 250;
myButton.label = "取得 tf1 的 format1,據以改變 tf3 的文字格式";//取得或設定組件的文字標籤
myButton.toggle = true;//開啟-是否可以切換按鈕
/*selected屬性
http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/fl/controls/LabelButton.html#selected
myButton.selected = true;
將Button組件實體myButton移動到座標(50,230)
*/
myButton.move(200, 210);
//;
var format:TextFormat = new TextFormat();
format = tf1.getTextFormat();
//
myButton.addEventListener(Event.CHANGE, changeFormat);
function changeFormat(e:Event):void
{
 if (e.currentTarget.selected)
 {
  tf3.setTextFormat(format, startRange, endRange);
  e.currentTarget.label = "回復 tf3 原本格式";
 }
 else
 {
  tf3.setTextFormat(format3, startRange, endRange);
  e.currentTarget.label = "取得 tf1 的 format1,據以改變 tf3 的文字格式";
 }

}


適用於 Adobe  Flash  Professional CS5 的 ActionScript  3.0 參考__flash.text.TextField.getTextFormat()方法

適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__fl.controls.LabelButton.selected屬性

2010年11月17日 星期三

[AS3] TextField.setTextFormat(format, beginIndex, endIndex):void

setTextFormat()方法
public function setTextFormat(format:flash.text:TextFormat, beginIndex:int = -1, endIndex:int = -1):void
參數
format:flash.text:TextFormat — TextFormat 物件,包含字元和段落格式資訊。
beginIndex:int (default = -1) — 選擇性;整數,指定從零開始的索引位置,以指定想要的文字範圍的第一個字元。
endIndex:int (default = -1) — 選擇性;整數,指定想要的文字範圍後的第一個字元。依原設計,如果指定 beginIndex 和 endIndex 值,就會更新從 beginIndex 到 endIndex-1 的文字。


  
  1. my_textField.setTextFormat(textFormat:TextFormat)
    將 textFormat 的屬性套用到文字欄位中的所有文字
  2. my_textField.setTextFormat(textFormat:TextFormat, beginIndex:int)
    會將 textFormat 的屬性套用到從 beginIndex 位置開始的字元。
  3. my_textField.setTextFormat(textFormat:TextFormat, beginIndex:int, endIndex:int)
    將 textFormat 參數的屬性套用到從 beginIndex 位置到 endIndex-1 位置的文字範圍。

SWF



//
var tf1:TextField = new TextField();
tf1.autoSize = TextFieldAutoSize.LEFT;
tf1.text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
tf1.x = 50;
tf1.y = 30;
tf1.background = true;
addChild(tf1);
//
var tf2:TextField = new TextField();
tf2.autoSize = TextFieldAutoSize.LEFT;
tf2.text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
tf2.x = 50;
tf2.y = 60;
tf2.background = true;
addChild(tf2);
//
var tf3:TextField = new TextField();
tf3.autoSize = TextFieldAutoSize.LEFT;
tf3.text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
tf3.x = 50;
tf3.y = 115;
tf3.background = true;
addChild(tf3);
//
var format1:TextFormat = new TextFormat();
format1.color = 0x0000FF;
format1.font = "04b_08";
format1.size = 24;
//
var format2:TextFormat = new TextFormat();
format2.color = 0xFF2255;
format2.font = "Times New Roman";
format2.size = 36;
//
var format3:TextFormat = new TextFormat();
format3.color = 0x662255;
format3.font = "Orator Std";
format3.size = 42;
//
var startRange:int = 6;
var endRange:int = 11;
tf1.setTextFormat(format1);
tf2.setTextFormat(format2, startRange);
tf3.setTextFormat(format3, startRange, endRange);


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.TextField.setTextFormat()方法

2010年11月16日 星期二

[AS3]嵌入字型 - TextField.embedFonts ( 三 )_嵌入外部引入的字型資訊

public static function registerFont(font:Class):void
在全域字體清單中註冊字體類別
例:Font.registerFont(ShareFont);

※ 從主檔載入外部字型分享swf檔,嵌入外部引入的字型資訊

//registerFont()方法
//public static function registerFont(font:Class):void
//在全域字體清單中註冊字體類別,才能提供給其它檔案嵌入字型。
//參數↓
//font:Class — 您要新增至全域字體清單中的類別。


‧TextField 內的字元使用嵌入之字型 (點擊文字欄位中的文字,跳窗連結至所顯示的url)




(一)首先必須做一個元件庫中含有嵌入字型的swf檔。開一新檔名為 991115_shareFont.fla
如同  [AS3]嵌入字型 - TextField.embedFonts ( 一 ) 的說明,在元件庫新增字體


(二)按 [+] 新增字體後,到右邊選擇字型、字元範圍,填入名稱。






















(三)切換的[ActionScript]頁嵌,外框模式選[傳統],勾選[匯出給ActionScript使用、[匯出在第一影格],填入類別命名,此處為[ ShareFont ],這類別名稱在ActionScript中將被引用。*** 注意,由於這字型要分享給其它Flash檔案使用,必須在下方[共享區塊勾選[匯出給執行階段共享],並將URL欄位填入此FLA 將匯出的SWF檔名,此處為[ 991115_shareFont.swf ]。


(四}到主場景第一影格寫入以下AS,並將991115_shareFont.fla匯出為991115_shareFont.swf

//
var a = Font.enumerateFonts();
trace("991115_shareFont.swf裡的嵌入字型為 " + a[0].fontName);
//
//registerFont()方法  
//public static function registerFont(font:Class):void
//在全域字體清單中註冊字體類別
//參數↓
//font:Class — 您要新增至全域字體清單中的類別。
Font.registerFont(ShareFont);


(五)建立此例主檔 991115_TextField.embedFonts_3.fla
主場景第一影格AS3如下~

//
import flash.display.Loader;
import flash.net.URLRequest;
import flash.text.TextFormat;
import flash.text.TextField;
//
var ldr:Loader = new Loader();
//載入外部擁有字型分享資訊的swf檔
ldr.load(new URLRequest("991115_shareFont.swf"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, lcHandler);
//
function lcHandler(e:Event):void
{
//*******將字体清單的裝置字體設為false,所以字型清單陣列儘剩下嵌入字型
//所引入的嵌入字型只有一個
 var embededFonts:Array = Font.enumerateFonts(false);
 trace("991115_TextField.embedFonts_3.swf裡的嵌入字型為 " + embededFonts[0].fontName);
 //
 var aTextFormat:TextFormat = new TextFormat();
 //******所引入的嵌入字型只有一個,其名稱就是embededFonts[0].fontName
 aTextFormat.font = embededFonts[0].fontName;
 trace("aTextFormat.font = " + aTextFormat.font);
 aTextFormat.color = 0xffffff;
 aTextFormat.size = 24;
 aTextFormat.letterSpacing = -1;
 aTextFormat.leftMargin = 15;
 aTextFormat.rightMargin = 15
 aTextFormat.target = "_blank";
 aTextFormat.url = "http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/TextFormat.html#url";
 //
 var aTextField:TextField = new TextField();
 //*******在文字欄位實體設定embedFonts(嵌入字型)屬性為真
 aTextField.embedFonts = true;
 aTextField.multiline = true;
 aTextField.wordWrap = true;
 aTextField.background = true;
 aTextField.backgroundColor = 0xff2288;
 aTextField.x = 100;
 aTextField.y = 50;
 aTextField.width = 360;
 //aTextField.height = 200;
 aTextField.autoSize = TextFieldAutoSize.LEFT;
 aTextField.defaultTextFormat = aTextFormat;
 aTextField.text = "\n"+"http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/TextFormat.html#url"+"\n\n";
 //aTextField.setTextFormat(aTextFormat);
 addChild(aTextField);
}


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.enumerateFonts()方法


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.fontName屬性

適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.registerFont()方法

2010年11月15日 星期一

[AS3]嵌入字型 - TextField.embedFonts ( 二 )

TextField.embedFonts = true;
( 二 )enumerateFonts(enumerateDeviceFonts:Boolean = false):Array

enumerateDeviceFonts:Boolean (default = false) — 指出您是否要將清單限制為只有目前的可用嵌入字體。 如果此項設定為 true,便會傳回所有字體的清單 (包括裝置字體和嵌入字體兩者)。 如果此項設定為 false,則只會傳回嵌入字體的清單。

// 字型清單設為不列入裝置字體,而只列入嵌入字體。並指定給embeddedFonts 陣列
var embeddedFonts:Array = Font.enumerateFonts(false);
var tFormat:TextFormat = new TextFormat();
//嵌入字體只有一個(第一個),其參照就是embeddedFonts[0],取其fontName屬性就是嵌入字體的名稱,並指定給TextFormat類別的font屬性。
tFormat.font = embeddedFonts[0].fontName;






import flash.text.TextFormat;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.Font;
//
//enumerateFonts(enumerateDeviceFonts:Boolean = false):Array
//enumerateDeviceFonts:Boolean (default = false) — 指出您是否要將清單限制為只有目前的可用嵌入字體。 如果此項設定為 true,便會傳回所有字體的清單 (包括裝置字體和嵌入字體兩者)。 如果此項設定為 false,則只會傳回嵌入字體的清單。
//http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/Font.html#enumerateFonts()
var embeddedFonts:Array = Font.enumerateFonts(false);
//trace(embeddedFonts[0].fontName);
//Font.registerFont(MyFont1); 
//
var tFormat:TextFormat = new TextFormat();
//embeddedFonts[0].fontName
tFormat.font = embeddedFonts[0].fontName;
tFormat.size = 22;
tFormat.color = 0xffff00;
tFormat.letterSpacing = -1;

//
var tField:TextField = new TextField();
//
tField.embedFonts = true;
tField.background = true;
tField.backgroundColor = 0xaa33ff;
tField.x = 80;
tField.y = 80;
tField.autoSize = TextFieldAutoSize.LEFT;
tField.selectable = false;
tField.mouseEnabled = true;
//字型嵌入,旋轉後仍正常
tField.rotation = -10;
//
tField.defaultTextFormat = tFormat;
tField.text = "今天是Flash的一天,而且三明治很難吃。";
addChild(tField);



適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.enumerateFonts()方法

適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.fontName屬性

[AS3]嵌入字型 - TextField.embedFonts ( 一 )

TextField.embedFonts = true;
( 一 )於元件庫中新增字型、繼承Font類別而為其子類別
   於ActionScript中建構此類別實體
   var myFont1:Font = new MyFont1();


點擊白色文字欄位區域,輪替更換所嵌入的英文字型



●●●在元件庫中新增字體與設定類別●●●

●在元件庫面板裡按右鍵,點選[新增字體]










●●在[字型內嵌]面板左側上方點選 [+] 圖示按鈕,增加字體。於右側[選項]頁籤輸入自訂名稱,從[系列]下拉選單選擇欲嵌入的字型,[樣式]下拉選單則可挑選一般、斜體或粗體等。[字元範圍]的核取方塊可用來決定要嵌入哪些字元;其下的[也包括下列字元]可貼入指定嵌入的字元,本例為[Hello World],貼入後剩下[Helo Wrd],自動捨棄了重覆字元。所以,本例MyFont1只嵌入[Helo Wrd]幾個字元。MyFont2也一樣。























●●●切換到[ActionScript]頁籤。在[連結]區塊,勾選[匯出給ActionScrip使用]、[匯出在第一影格],基底類別已自動填入[flash.text.Font],在[類別]欄位填入[MyFont1],這MyFont1類別將在ActionScript中被實體化,之後並指定給TextFormat類別的font屬性。上方[外框格式],此例勾選[傳統]。



























第一影格AS3
//
var myFont1:Font = new MyFont1();
var myFont2:Font = new MyFont2();
//Font.registerFont(MyFont1);
//
var format:TextFormat = new TextFormat();
format.color = 0x336699;
format.size = 48;
format.letterSpacing=3;
format.font = myFont1.fontName;
//
var myText:TextField = new TextField();
myText.background = true;
myText.x = 110;
myText.y = 60;
myText.embedFonts = true;
myText.autoSize = TextFieldAutoSize.LEFT;
myText.antiAliasType = AntiAliasType.ADVANCED;
//
//defaultTextForma 要放在myText.text = "Hello World"之前
myText.defaultTextFormat = format;
myText.text = "Hello World";
//
myText.selectable = false;
myText.mouseEnabled = true;
addChild(myText);
//
myText.addEventListener(MouseEvent.CLICK, clickHandler);
//;
function clickHandler(e:MouseEvent):void
{
 format.font = format.font == myFont1.fontName ? (myFont2.fontName):(myFont1.fontName)
 myText.setTextFormat(format);
}


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.fontName屬性

適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.AntiAliasType 類別

[AS3] TextField.embedFonts屬性 + TextField.AntiAliasType類別 + TextField.thickness屬性



TextField.embedFonts = true; //指定是否要使用內嵌的字體外框顯示。
TextField.antiAliasType = AntiAliasType.ADVANCED;
thickness : Number 在這個文字欄位中,Glyph 邊緣的粗細。thickness的屬性值範圍在 -200~200之間。




摘錄Flash Help一句話:

flash.text.TextField.antiAliasType 屬性必須有值 AntiAliasType.ADVANCED,才能讓您設定銳利度、粗細或gridFitType 屬性,或使用 TextRenderer.setAdvancedAntiAliasingTable() 方法。

當然, 前提得先 TextField.embedFont = true;



比較銳利度:
1. 未定義antiAliasType屬性



2.TextField.antiAliasType = AntiAliasType.ADVANCED;


3.TextField.antiAliasType = AntiAliasType.NORMAL;



●●● 顯然  2.TextField.antiAliasType = AntiAliasType.ADVANCED 是比較銳利清晰。


SWF ---> TextField.antiAliasType = AntiAliasType.ADVANCED




SWF --- TextField.thickness = 200;



//
import flash.display.Loader;
import flash.net.URLRequest;
import flash.text.TextFormat;
import flash.text.TextField;
//
var ldr:Loader = new Loader();
//載入外部擁有字型分享資訊的swf檔
ldr.load(new URLRequest("991115_shareFont_2.swf"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, lcHandler);
//
function lcHandler(e:Event):void
{
 //*******將字体清單的裝置字體設為false,所以字型清單陣列僅剩下"嵌入字型"
 //所引入的嵌入字型只有一個
 var embededFonts:Array = Font.enumerateFonts(false);
 trace("991115_TextField.embedFonts_3.swf裡的嵌入字型為 " + embededFonts[0].fontName);
 //
 var aTextFormat:TextFormat = new TextFormat();
 //******所引入的嵌入字型只有一個,其名稱就是embededFonts[0].fontName
 aTextFormat.font = embededFonts[0].fontName;
 trace("aTextFormat.font = " + aTextFormat.font);
 aTextFormat.color = 0xffffff;
 aTextFormat.size = 16;
 //letterSpacing - 字元間距
 aTextFormat.letterSpacing = -1;
 aTextFormat.leftMargin = 15;
 aTextFormat.rightMargin = 15
 aTextFormat.target = "_blank";
 //aTextFormat.url = "";
 //
 var aTextField:TextField = new TextField();
 //*******在文字欄位實體設定embedFonts(嵌入字型)屬性為真
 aTextField.embedFonts = true;
 aTextField.multiline = true;
 aTextField.wordWrap = true;
 aTextField.background = true;
 aTextField.backgroundColor = 0xff2288;
 aTextField.x = 10;
 aTextField.y = 10;
 aTextField.width = 530;
 //aTextField.height = 200;
 aTextField.autoSize = TextFieldAutoSize.LEFT;
 //***Flash Help:進階消除鋸齒功能能讓小型文字顯示高品質的字體外觀, 
 //特別適用於含有許多小型文字的應用程式。 
 //對於非常大的字體 (大於 48 點) 則不建議使用進階消除鋸齒的功能。
 //見http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/AntiAliasType.html
 aTextField.antiAliasType = AntiAliasType.ADVANCED;
 //aTextField.antiAliasType = AntiAliasType.NORMAL;
 //thickness : Number  在這個文字欄位中,Glyph 邊緣的粗細。
 //thickness的屬性值範圍在 -200 ~ 200之間。
 aTextField.thickness = 200;
 //
 aTextField.defaultTextFormat = aTextFormat;
 aTextField.text = "Oh, Microsoft. You just can’t seem to help but be the last one to every party you attend. You launched the Kin just as messenger phones began to die, then you launched Windows Phone 7 when the smartphone wars were so far underway that most folks had already declared an allegiance.And now you’ve got your motion gaming platform, the Kinect, hitting the shelves years after the Nintendo Wii and months after the Playstation Move. I’ve spent the last week living with a Kinect in my life. How does it fare? Find out after the jump.Short Version:The Kinect isn’t bad. Not at all. It also, however, is not great.. yet. Of the six launch titles I tested, there’s only one that I’d whole-heartedly recommend and proves to me that the platform might be worthwhile. A few of the others are worthwhile rentals — and unlike the PS3 Move’s “KungFu Rider”, none of them made me want to throw the whole thing into a fire.Oh — and if one of your primary interests in the Kinect is using it to navigate through the 360 interface, you’ll want to hold off. Kinect support on the dashboard is currently pretty slow, and pretty clunky.";
 //aTextField.setTextFormat(aTextFormat);
 addChild(aTextField);
}


SWF --- TextField.thickness = -200;



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

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

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

[AS3] 擷取使用者所選取的文字並顯示在另一TextField中 - selectionBeginIndex、selectionEndIndex、substring()

substring(startIndex:Number, endIndex:Number):String
TextField.selectionBeginIndex、TextField.selectionEndIndex


//selectionBeginIndex -
//[唯讀] 目前選取範圍中,第一個字元的字元索引值 (從零開始)。
 var beginIndex:int = myTextField.selectionBeginIndex;
//selectionEndIndex -
//[唯讀] 目前選取範圍中,最後一個字元的字元索引值 (從零開始)。
 var endIndex:int = myTextField.selectionEndIndex;


//substring(開頭字元索引, 結束字元索引);
//substring(startIndex:Number, endIndex:Number):String
//參考http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/String.html#substring()


選取文字,所選取文字片段的開始字元索引,和結束字元索引,會顯示在左下文字欄位。
所選取的文字片段則顯示在藍色文字欄位中。



//
import flash.text.TextField;
//
var myTextField:TextField = new TextField();
myTextField.text = "TextField selectionBeginIndex 和 selectionEndIndex 是「唯讀」屬性,因此無法設定為透過程式設計方式選取文字,但可以用來擷取使用者目前已選取的項目。此外,輸入文字欄位可以使用 caretIndex 屬性。";
myTextField.x = 30;
myTextField.y = 15;
myTextField.width = 300;
myTextField.wordWrap = true;
myTextField.multiline = true;
//
var beginTF:TextField = new TextField();
var endTF:TextField = new TextField();
beginTF.width = 300;
beginTF.x = 50;
beginTF.y = 220;
endTF.width = 300;
endTF.x = 50;
endTF.y = 235;
//
var outputTF:TextField = new TextField();
outputTF.width = 300;
outputTF.x = 180;
outputTF.y = 90;
outputTF.wordWrap = true;
outputTF.multiline = true;
outputTF.background = true;
outputTF.backgroundColor = 0x0066cc;
outputTF.textColor = 0xffffff;
//
addChild(myTextField);
addEventListener(MouseEvent.MOUSE_UP, selectText);
//
addChild(beginTF);
addChild(endTF);
addChild(outputTF);
//
function selectText(event:MouseEvent):void
{
 //selectionBeginIndex -
 //[唯讀] 目前選取範圍中,第一個字元的字元索引值 (從零開始)。
 var beginIndex:int = myTextField.selectionBeginIndex;
 //selectionEndIndex -
 //[唯讀] 目前選取範圍中,最後一個字元的字元索引值 (從零開始)。
 var endIndex:int = myTextField.selectionEndIndex;
 beginTF.text = "First letter index position: " + beginIndex;
 endTF.text = "Last letter index position: " + endIndex;
 //substring(開頭字元索引, 結束字元索引);
 //substring(startIndex:Number, endIndex:Number):String
 //參考http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/String.html#substring()
 outputTF.text = myTextField.text.substring(beginIndex,endIndex);
}


String類別的 substring()方法


TextField的selectionBeginIndex 和 selectionEndIndex 屬性

2010年11月12日 星期五

[AS3] setSelection()方法 - 動態選取文字欄位內的部份文字

selectable : Boolean -指出文字欄位是否可選取的Boolean值,預設true
setSelection(beginIndex:int, endIndex:int):void
滑鼠點選爭間紅色背景文字欄位,觸發選取文字事件




package TextField
{
 //
 import flash.text.*;
 import flash.display.Sprite;
 import flash.events.MouseEvent;
 //
 public class setSelection_1 extends Sprite
 {
  //
  private var aTextField:TextField = new TextField();
  private var textContent:String = "No matter where you click on this text field the TEXT IN ALL CAPS is selected.";
  //
  public function setSelection_1()
  {
   //
   aTextField.text = textContent;
   //aTextField.autoSize = TextFieldAutoSize.LEFT;
   aTextField.width = 200;
   aTextField.height = 100;
   aTextField.x = 150;
   aTextField.y = 100;
   aTextField.wordWrap = true;
   aTextField.multiline = true;
   aTextField.border = true;
   aTextField.borderColor = 0xffff00;
   aTextField.background = true;
   aTextField.backgroundColor = 0xff0000;
   //文字欄位中文字的顏色,以十六進位格式表示。
   aTextField.textColor = 0x2222ff;
   //selectable : Boolean - 指出文字欄位是否可選取的Boolean 值。
   //selectable預設為true
   //aTextField.selectable = false;
   //
   addChild(aTextField);
   aTextField.addEventListener(MouseEvent.MOUSE_DOWN, selectText);
  }
  //
  private function selectText(e:MouseEvent):void
  {
   //setSelection(beginIndex:int, endIndex:int):void
   //beginIndex:int 和 endIndex:int 皆為0 base
   e.currentTarget.setSelection(49,65);
  }
 }
}


適用於 Adobe  Flash  Professional CS5 的 ActionScript  3.0 參考 - setSelection()方法

[AS3] 在文字欄位中點擊滑鼠,垂直捲動文字 - TextField.scrollV屬性

點擊一次捲動兩行 --->  myTextField.scrollV +=2;
點擊後滑鼠取得文字欄位為焦點,可用滾輪捲動文字行


package 
{
 //
 import flash.display.Sprite;
 import flash.text.*;
 import flash.events.MouseEvent;
 //
 public class TextField_TextScrollExample_1 extends Sprite
 {
  //
  private var myTextField:TextField = new TextField  ;
  private var myText:String = "Hello world and welcome to the show. It's really nice to meet you.Take your coat off and stay a while. OK, show is over. Hope you had fun. You can go home now. Don't forget to tip your waiter. There are mints in the bowl by the door. Thank you. Please come again.";
  //
  public function TextField_TextScrollExample_1()
  {
   //
   myTextField.text = myText;
   //
   myTextField.x = 150;
   myTextField.y = 100;
   myTextField.width = 150;
   myTextField.height = 100;
   myTextField.multiline = true;
   myTextField.wordWrap = true;
   myTextField.background = true;
   myTextField.border = true;
   //
   var format:TextFormat = new TextFormat  ;
   format.font = "Times New Rpman";
   format.color = 0x000088;
   format.size = 20;
   //
   myTextField.defaultTextFormat = format;
   //setTextFormat-將format參數所指定的文字格式,套用至文字欄位中的指定文字
   //setTextFormat(format:flash.text:TextFormat, beginIndex:int = -1, endIndex:int = -1):void
   //參考http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/TextField.html#setTextFormat()
   myTextField.setTextFormat(format);
   //
   addChild(myTextField);
   //
   myTextField.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownScroll);
  }
  //
  public function mouseDownScroll(event:MouseEvent):void
  {
   //scrollV-文字欄位中文字的垂直位置
   //如果顯示的第一行是文字欄位中的第一個字行,scrollV 便會設定為1
   //參考http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/TextField.html#scrollV
   //myTextField.scrollV ++; //點擊一次捲動一行
   myTextField.scrollV +=2;  //點擊一次捲動兩行
  }
 }
}



[AS3] 以htmlText屬性在文字欄位TextField之中顯示SWF

[CTRL+ENTER]預覽時有不能強制轉型的錯誤訊息,但仍成功匯出可運作的swf。

TypeError: Error #1034: 強制轉型失敗: 無法將 flash.text::TextField@265e8061 轉換成 flash.display.DisplayObjectContainer。
at org.papervision3d.core.utils.virtualmouse::VirtualMouse/handleUpdate()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at org.papervision3d.core.utils.virtualmouse::VirtualMouse/update()
at org.papervision3d.core.utils.virtualmouse::VirtualMouse/setLocation()
at org.papervision3d.core.utils::InteractiveSceneManager/handleEnterFrame()




package 
{
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 import flash.display.Sprite;
 public class TextFieldSample_4 extends Sprite
 {
  private var aTextField:TextField = new TextField();
  private var aHtmlTxt:String;
  public function TextFieldSample_4()
  {
   aHtmlTxt = "< font size='18' color='#ffff00'>< p>
以下在< b>文字欄位< /b>< i>TextField< /i>顯示< u>SWF< /u>,記得要控制寬和高。< /p>
< /font>< img src='991028_pv3d_Cube_BitmapAssetMatrial.swf' width='320' height='220'>";
   //若HTML文字中有標籤,則不能使用autoSize屬性
   //aTextField.autoSize = TextFieldAutoSize.LEFT;
   aTextField.width = 400;//文字欄位寬度(像素)
   aTextField.height = 300;//文字欄位高度(像素)
   aTextField.x = 120; //文字欄位x座標
   aTextField.y = 40;  //文字欄位y座標
   aTextField.multiline = true;//多行文字欄位-true開啟
   aTextField.wordWrap = true;//文字換行功能-true開啟
   aTextField.border = true;//指定文字欄位是否具有邊框
   aTextField.borderColor = 0xffff00;//文字欄位邊框的顏色
   aTextField.background = true;//指定文字欄位是否具有背景填色
   aTextField.backgroundColor = 0x660000;//文字欄位背景的顏色,預設為白色
   //alwaysShowSelection為true而且文字欄位不在焦點中時,
   //Flash Player 便會將文字欄位中的選取範圍反白標示為灰色。
   aTextField.alwaysShowSelection = true;
   addChild(aTextField);//將aTextField加入顯示清單
   aTextField.htmlText = aHtmlTxt;//htmlText-以HTML顯示文字欄位內容
   aTextField.rotationY = -30; //旋轉y軸-30度
   aTextField.scaleX = 1.2; //從註冊點套用的物件水平縮放
  }
 }
}

[AS3] 以htmlText屬性在文字欄位TextField之中顯示影像 + TextField類別常用屬性

以htmlText屬性在文字欄位TextField之中使用HTML時,img 標籤支援 JPEG、GIF、PNG 和 SWF 檔



package 
{
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 import flash.display.Sprite;
 public class TextFieldSample_3 extends Sprite
 {
  private var aTextField:TextField = new TextField();
  private var aHtmlTxt:String;
  public function TextFieldSample_3()
  {
   aHtmlTxt = "< font size='18' color='#ffff00'>< p>以下在< b>文字欄位< /b>< i>TextField< /i>顯示< u>影像< /u>,記得要控制寬和高。< /p>< /font>< img src='990916_01a_w250px.jpg' width='250' height='160'>";
   //若HTML文字中有標籤,則不能使用autoSize屬性
   //aTextField.autoSize = TextFieldAutoSize.LEFT;
   aTextField.width = 360;//文字欄位寬度(像素)
   aTextField.height = 250;//文字欄位高度(像素)
   aTextField.x = 120; //文字欄位x座標
   aTextField.y = 65; //文字欄位y座標
   aTextField.multiline = true;//多行文字欄位-true開啟
   aTextField.wordWrap = true;//文字換行功能-true開啟
   aTextField.border = true;//指定文字欄位是否具有邊框
   aTextField.borderColor = 0xffff00;//文字欄位邊框的顏色
   aTextField.background = true;//指定文字欄位是否具有背景填色
   aTextField.backgroundColor = 0x660000;//文字欄位背景的顏色,預設為白色
   //alwaysShowSelection為true而且文字欄位不在焦點中時,
   //Flash Player 便會將文字欄位中的選取範圍反白標示為灰色。
   aTextField.alwaysShowSelection = true;
   addChild(aTextField);//將aTextField加入顯示清單
   aTextField.htmlText = aHtmlTxt;//htmlText-以HTML顯示文字欄位內容
   aTextField.rotationY = -30; //旋轉y軸-30度
   aTextField.scaleX = 1.2; //從註冊點套用的物件水平縮放
  }
 }
}

2010年11月11日 星期四

[AS3] 指定文字欄位TextField類別實體的文字內容_TextField.text屬性



package 
{
 import flash.display.Sprite;
 import flash.text.*;
 public class TextFieldSample_1 extends Sprite
 {
  //建構myTextBox為TextField類別的實體
  private var myTextBox:TextField = new TextField();
  //宣告newText為字串變數,並指定其值。
  private var myText:String = "Hello World";
  public function TextFieldSample_1()
  {
   //將myTextBox加入顯示清單
   addChild(myTextBox);
   //將myText字串變數的值指定給myTextBox的text屬性
   myTextBox.text = myText;
   //控制myTextBox實體在舞台上的位置
   myTextBox.x = 100;
   myTextBox.y = 80;
  }
 }
}

[AS3] 在文字欄位TextField類別實體顯示HTML文字_ TextField.htmlText 屬性+autosize



package 
{
 //
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 import flash.display.Sprite;
 //
 public class TextFieldSample_2 extends Sprite
 {
  //建構myTextField為TextField類別的實體
  private var myTextField:TextField = new TextField();
  //宣告newText為字串變數
  private var newText:String;
  //
  public function TextFieldSample_2()
  {
   //TextFieldAutoSize.LEFT --> 自動欄位寬度,文字靠左。
   myTextField.autoSize = TextFieldAutoSize.LEFT;
   newText = "< p>
這段< b>文字< /b>< i>格式化< /i>為< u>HTML< /u>文字。< /p>
";
   //htmlText屬性 --> 包含 HTML 表示方式的文字欄位內容。
   myTextField.htmlText = newText;
   addChild(myTextField);
   myTextField.x = 160;
   myTextField.y = 80;
  }
 }
}


Flash Player 支援哪些 HTML 標籤:(快照圖像引用自下方連結)