首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯度TextField ActionScript 3

梯度TextField ActionScript 3
EN

Stack Overflow用户
提问于 2013-12-03 15:53:38
回答 2查看 861关注 0票数 0

在过去的几个小时里,我一直在寻找一种在TextField组件上添加渐变颜色的方法,而没有运气。一种方法是创建一个梯度矩形,并将TextField设置为它的掩码,但我无法使它工作:

代码语言:javascript
复制
var m:MovieClip = new MovieClip();
var mTxt:Sprite = new Sprite();
var txt:TextField = new TextField();
var tf:TextFormat = new TextFormat();
var dropShadow:DropShadowFilter = new DropShadowFilter(); 

dropShadow.distance = 0;
dropShadow.angle = 120;
dropShadow.color = 0x000000;
dropShadow.alpha = 1;
dropShadow.blurX = 2;
dropShadow.blurY = 2;
dropShadow.strength = 1;
dropShadow.quality = 80;
dropShadow.inner = false;
dropShadow.knockout = false;
dropShadow.hideObject = false;
txt.filters = new Array(dropShadow); 


tf.font = "Ethnocentric Rg";
tf.color = 0xffde00;
tf.size = 72;
txt.defaultTextFormat = tf;
txt.text = "1756.25";
mTxt.addChild(txt);

var fillType:String = GradientType.LINEAR;
var colors:Array = [0xFF0000, 0x0000FF];
var alphas:Array = [1, 1];
var ratios:Array = [0x00, 0xFF];
var matr:Matrix = new Matrix();

matr.createGradientBox(400, 100, 0, 0, 0);

var spreadMethod:String = SpreadMethod.REFLECT;


m.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);  
m.graphics.drawRect(0,0,400,120);

m.mask = mTxt;

addChild( m );

这段代码实际上使AIR调试器崩溃并退出。我在这里做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 16:11:19

我必须将两个层的cacheAsBitmap选项设置为true:

代码语言:javascript
复制
txt.cacheAsBitmap = true;
m.cacheAsBitmap = true;
addChild( m );
addChild(txt);
m.mask = txt;
票数 0
EN

Stack Overflow用户

发布于 2013-12-03 16:15:45

将cacheAsBitmap设置为true,并确保将面具添加到舞台上。

代码语言:javascript
复制
m.cacheAsBitmap = mTxt.cacheAsBitmap = true;
m.mask = mTxt;
addChild( m );
addChild( mTxt ); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20355697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档