如何在AS3中添加笔划到文本?

时间:2009-04-28 20:21:06

标签: flash actionscript-3 fonts filter

我在AS3编码,想要在我正在显示的屏幕上添加笔划。我目前的代码是:

format = new TextFormat("BN Elements", 14, 0xEEEEEE, false, false, false, null, null, "left");
format.font = "BN Elements"
scoreText = initText(starsleftText, format, "", 160,5, 545, 61);
scoreText = "Stroke This Text";

由于文本是动态生成的,我不能在Flash IDE中将其创建为文本对象 - 我知道要添加笔划我可以使用“glow”功能设置为1000%和低质量。

我想我的问题是,如何直接在AS3中应用具有类似属性的“发光”滤镜效果?还是有一种我不知道的替代“中风”功能?

3 个答案:

答案 0 :(得分:5)

这很简单:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filters/GlowFilter.html(页面底部有一个例子)

我不确定他们是否添加了任何新内容,只要添加一个真实的笔画,但是辉光滤镜'笔画'与代码的效果一样。

您还可以创建一个像素弯曲过滤器,它可以让您对效果有更多的控制,但我似乎找不到任何已编写的过滤器:(

答案 1 :(得分:1)

Flash从形状的边缘生成笔划。由于您正在动态使用文本(而不是在创作中),Flash可以使用1)操作系统绘制的设备文本或2)SWF文件中的嵌入文本进行渲染。在第一种情况下,Flash(当前)不能访问边缘来描边。在第二种情况下,Flash使用专门的子渲染器来处理文本(当前再次)不支持描边,或者就此而言,除了纯色填充之外的所有内容。

简短回答:运行时不支持当前文本的抚摸,尽管提出的发光或像素弯曲方法是个好主意。

答案 2 :(得分:0)

但还有另一种方式。通过BlurFilter显示笔画,不知何故,但是它不干净且非常慢,因为完成了很多像素处理,这绝对没有必要。

替代方案(快速方便)是使用Pixel Benders PBJ滤波器。我自己写了一个笔画过滤器,它就像一个魅力。如果您愿意,您甚至可以隔离原始图像,因此滤镜只会为您提供轮廓,而不会显示原始图像。

参数是:

pixel4 color

浮力

浮动阈值

bool isolate

http://www.file-upload.net/download-7344877/Stroke.pbj.html

如果您愿意,可以在此处下载并根据需要使用它。

如果您不知道如何在Flash中使用Pixel Bender滤镜,Google就是您的朋友。有很多关于它的教程。