Flash中 动态文本的alpha设置

来源:互联网 发布:影片封面搜索软件 编辑:程序博客网 时间:2024/05/22 00:18

FLASH中的 让动态文本 支持透明度属性

 

这个问题一直很让人头疼

 

在网络了找了很久 有一个有效的办法是 用embedFonts=true 来实现

 

具体的步骤如下:

 

1.在库中创建一个 字体元件 并设置连接属性 这里假定为 my_font

2.设置动态文本属性

 

var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "my font";  //这里连接库文件

this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 120);
my_txt.wordWrap = true;
my_txt.embedFonts = true;  //这里属性为真
my_txt.text = "Hello world";
my_txt.setTextFormat(my_fmt);

 

此时再设置 alpha属性 就可以了

 

my_txt._alpha=50;

 

这个方法是在FLASH8论坛上找到的,我没有实施过,但是上面不少人实现了是可以的

 

只不过有一个缺点,因为使用了嵌入字体,所以生成的SWF文件特别大,所以有点得不偿失.

 

那怎么办?

 

.....

 

终于被我想到了一个办法

采用遮罩来实现透明度

 

既然用动态文本

那就创建一个对应的遮罩 用遮罩的透明度来实现文本的透明度

 

这里要注意的是 FLASH中让遮罩支持透明度一定要设置 cacheAsBitmap=true

 

既让FLASH中的矢量图转换成位图 这样才可以支持透明度遮罩效果

 

1.ctrl+f8 新建MC 随便画一个黑框 设置 X=0 Y=0,并设置link 为msktxt

2.再新建立一个 mc_font 的MC 里面插入名称为ftxt的动态文本 设置link 为mc_font

3.编写代码

 

tempTXT.txtContent.attachMovie("mc_font","txtIN",1);
tempTXT.txtContent.txtIN.ftxt.text = Ttxt;  //设置里面的文字内容

 

tempTXT.attachMovie("msktxt","msktxt",2);  //msktxt为库中的一个遮罩MC可以
tempTXT.txtContent.txtIN.cacheAsBitmap=true;
tempTXT.msktxt.cacheAsBitmap=true;

tempTXT.msktxt._alpha=50;
tempTXT.txtContent.txtIN.setMask(tempTXT.msktxt);

 

看看效果应该可以出来了

 

这里代码是截取我程序里的一段 ,我本来是要用onEnterFrame 来实现动态文本 透明度渐变的 所以代码长 贴出来不方便^^

 

 

 

 

 

原创粉丝点击