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 意见 :
张贴意见