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

有帮助吗?

解决方案

这里有些混乱。

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

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

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

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

其他提示

如果您发现文本字段不响应alpha财产,这可能是因为你还没有嵌入字体。请确保您单击“嵌入...”在文本字段的属性和选择,说:“基本拉丁文”。

如果您发现您的htmlText格式(例如<b><i>)没有显示出来,您必须确保那些(风格)字体也嵌入。一个简单的方法做,这是创建你需要的样式隐藏或关闭阶段的动态文本框(一定要嵌入字体呢!)

您可以做到这一点,而不使用的BlendMode,在文本外观(我相信)未成年人的牺牲嵌入字体。

import flash.display.BlendMode;
import flash.text.TextField;
// later...
var tf:TextField = new TextField();
tf.blendMode = BlendMode.LAYER;
tf.alpha = 0.5;

动态文本不支持alpha属性(等等)。我想将它设置为HTML文本施加同样的限制。我解决这个发现的一种方法是包含文本字段和影片剪辑并设置影片剪辑中的字母来代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top