因为Flash的系统字体不直接支持透明,所以我们得通过嵌入字体或者Filter类来解决。简单地通过改变动态文本的alpha或者它做在的mc的alpha都是没有用的。
1 嵌入字体
这种方法最简单,选中动态文本框,然后在属性面板中点嵌入(“Embed”)按钮,按后选择要全部字库嵌入,还是只嵌入部分字符。但代价是文件会变大,尤其在嵌入中文字体的时候,绝对是噩梦。当然只是嵌入下载进度0-9这样简单的几个字符,还是非常方便的。
2 Filter
这是从Blueidea学来的,就是给动态文本增加一个滤镜,即使是空滤镜也可以。
AS3中代码
//建立动态文本 var my_txt:TextField=new TextField(); my_txt.autoSize = TextFieldAutoSize.LEFT; my_txt.background = true; my_txt.border = true; my_txt.text = "Hello world and welcome to the show."; //定义滤镜 var txt_blur:BlurFilter = new BlurFilter(0,0,0); my_txt.filters = [txt_blur]; my_txt.alpha = 0.5; //加入动态文本 my_txt.x = my_txt.y = 50; addChild(my_txt);
AS2中代码
import flash.filters.BlurFilter; var txt_blur:BlurFilter = new BlurFilter(0,0,0); this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.text = "DDGGDGDGDGDG"; my_txt.filters = [txt_blur]; my_txt._alpha = 50;
3 BitmapData 和 ColorMatrixFilter
据HbrO说BitmapData和ColorMatrixFilter也能实现动态文本的半透明效果。