在Flash中使用htmlText属性在TextField对象中设置文本时,更改Alpha值不再有效。有办法吗?
答案 0 :(得分:4)
这里有些混乱。
alpha是否有效取决于文本字段是否使用设备字体,而不是它是否使用HTML。 (只要有动态/输入文本且没有嵌入字体,就会使用设备字体。)
如果可能,只需发布Flash Player 10,它现在支持设备字体的alpha。 (请注意,您必须设置文本字段或其父级的alpha
属性 - 为文本本身选择透明颜色不起作用。)
v8-9的后备选项是通过应用过滤器强制进行位图缓存。例如,您可以使用颜色设置为透明的投影。这会导致Flash在将文本字段绘制到屏幕之前将其渲染为位图,因此您的alpha应用于位图并且一切正常。
对于播放器版本7或更低版本,无法获取设备字体的alpha值。您必须嵌入字体或学习没有alpha的生活。 :d
答案 1 :(得分:2)
如果您发现文本字段没有响应alpha
属性,可能是因为您没有嵌入字体。确保单击文本域属性中的“嵌入...”,然后选择“基本拉丁语”。
如果您发现htmlText
格式(例如<b>
和<i>
)未显示,则必须确保这些(样式)字体也已嵌入。一个简单的方法是使用您需要的样式创建隐藏或非舞台动态文本字段(确保嵌入字体!)
答案 2 :(得分:0)
您可以在不使用blendMode嵌入字体的情况下执行此操作,但在文本外观方面做出轻微牺牲(我相信)。
import flash.display.BlendMode;
import flash.text.TextField;
// later...
var tf:TextField = new TextField();
tf.blendMode = BlendMode.LAYER;
tf.alpha = 0.5;
答案 3 :(得分:-1)
动态文本不支持alpha属性(以及其他属性)。我假设将其设置为HTML文本强加了相同的限制。我发现的一种方法是在影片剪辑中包含文本字段,并在影片剪辑上设置alpha。