2

在 Flash 中,当您使用 htmlText 属性在 TextField 对象中设置文本时,更改 alpha 值不再有效。有办法解决吗?

4

4 回答 4

4

这里有些混乱。

  1. alpha 是否有效取决于文本字段是否使用设备字体,而不是是否使用 HTML。(只要您有动态/输入文本并且您没有嵌入字体,就会使用设备字体。)

  2. 如果可能,只需为 Flash player 10 发布,它现在支持设备字体的 alpha。(请注意,您必须设置alpha文本字段或其父级的属性 - 为文本本身选择透明颜色不起作用。)

  3. v8-9 的后备选项是通过应用过滤器来强制位图缓存。例如,您可以使用颜色设置为透明的阴影。这会导致 Flash 在将文本字段绘制到屏幕之前将其渲染为位图,因此您的 alpha 将应用于位图并且一切正常。

  4. 对于播放器版本 7 或更低版本,无法获取设备字体的 alpha。您必须嵌入字体或学会在没有 alpha 的情况下生活。:D

于 2008-12-03T01:49:33.030 回答
2

如果您发现文本字段没有响应该alpha属性,可能是因为您没有嵌入字体。确保单击文本字段属性中的“嵌入...”,然后选择“基本拉丁语”。

如果您发现您的htmlText格式(例如<b><i>)没有显示,您必须确保这些(样式)字体也被嵌入。一种简单的方法是使用您需要的样式创建隐藏或后台动态文本字段(确保也嵌入字体!)

于 2008-11-30T22:11:34.127 回答
0

您可以在不嵌入字体的情况下使用 blendMode 执行此操作,但会稍微牺牲文本外观(我相信)。

import flash.display.BlendMode;
import flash.text.TextField;
// later...
var tf:TextField = new TextField();
tf.blendMode = BlendMode.LAYER;
tf.alpha = 0.5;
于 2008-12-01T20:49:58.347 回答
-1

动态文本不支持 alpha 属性(等等)。我假设将其设置为 HTML 文本会施加相同的限制。我发现的一种方法是在影片剪辑中包含文本字段,并在影片剪辑上设置 Alpha。

于 2008-11-28T22:43:45.823 回答