Flash 8 以前,假如要做半透輸入文字欄位
必須要嵌入字型
但是中文字型隨便都好幾 mb
會讓 swf 檔案大小暴增
這樣便不適合在網路上使用
拜 Flash 8 新增的功能所賜 - 點陣圖快取、濾鏡、混合模式...
已經不需要嵌入字型
就可以做到半透明輸入、動態文字欄位
方式很多種
原理都是讓 Flash Player 底層將文字欄位預先以點陣圖方式處理過
這樣就可以套用 alpha 屬性了
當然你也可以自己用 ActionScript 將文字欄位做點陣圖處理
不過比較麻煩一點
強迫 Flash Player 預先以點陣圖渲染的方式:
- 使用混合模式 (Blend Mode)
- 使用點陣圖快取 (MovieClip.cacheAsBitmap)
- 套用濾鏡
以下是用 AS 動態建立輸入文字欄位
利用濾鏡強迫輸入文字欄位預先以點陣圖渲染
再對文字欄位設定 _alpha 屬性達到半透明的效果
var txt:TextField = this.createTextField("txt", 100, 0, 0, 160, 160);
txt.type = "INPUT";
txt.border = true;
txt.multiline = true;
txt.wordWrap = true;
var tf:TextFormat = new TextFormat();
tf.size = 24;
tf.bold = true;
txt.setNewTextFormat(tf);
//
import flash.filters.*;
var bf:DropShadowFilter = new DropShadowFilter(1, 45, 1, 1);
var txtFilters:Array = txt.filters;
txtFilters.push(bf);
txt.filters = txtFilters;
//
txt._alpha = 50;
另外一種方式比較簡單
直接將文字欄位包覆一層 MovieClip
對外層 MovieClip 設定混合模式為 "layer",以及 alpha 值即可
示範
轉載請註明出處 http://ticore.blogspot.com/2006/12/flash-8.html




0 意見 :
張貼意見