JSFL - Flash CS4:替换文本字段'嵌入字体的字体

发布于 2024-10-05 05:04:17 字数 501 浏览 11 评论 0原文

我尝试了一堆 JSFL 脚本来更改 fla 库的文本字段字体。我使用这些脚本将文本字段的字体更改为库中确实存在的嵌入字体。所有脚本在 Flash CS3 中都运行良好,但在 Flash CS4 中总是失败

让我们举个例子:将 fla 场景中所有文本字段使用的“Arial”字体替换为“myEmbeddedArial*”嵌入字体(符号)。 jsfl 字体替换说明如下:

textElement.setTextAttr("face", "myEmbeddedArial*");

我可以提供有关此问题的大量所有详细信息,但是否有人已经观察到它并可能知道其根本原因?

谢谢

P.S:请注意,仅当文本字段不包含空字符串且仅当包含此文本字段的符号位于场景中且<时,Flash CS4 IDE 的查找/替换“字体”功能才能正常工作。 /strong> 仅当您在“当前文档”(而不是“当前场景”)中搜索时。

I have tried a bunch of JSFL scripts to change textfields' fonts of a fla library. I used those scripts to change textfields' fonts for an embedded font which do exist in the library. All scripts run fine through Flash CS3 but always fail through Flash CS4

Let's give an example: replacing the "Arial" font used by all textfields in the fla scene by the "myEmbeddedArial*" embedded font (symbol).
The jsfl font replacement instruction is the following one:

textElement.setTextAttr("face", "myEmbeddedArial*");

I can give a lots of all details about this issue but does someone already observed it and may know about its root cause ?

Thanks

P.S: Note the Find/Replace "Font" feature of Flash CS4 IDE works properly only if the textfields contain not emtpy strings and only if the symbol including this textfield is in a scene and only if you search in "Current Document" (and not in "Current Scene").

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青衫儰鉨ミ守葔 2024-10-12 05:04:17

我不确定它是否适合你,但也许:
http://blog.samueltoth.com/?p=142

祝你好运,

I am not sure if it works for you but maybe:
http://blog.samueltoth.com/?p=142

Good luck,
Rob

情泪▽动烟 2024-10-12 05:04:17

我想我找到了一个成功的解决方法。因此,在 CS4 IDE 中正确执行此操作的唯一方法是使用查找/替换功能,但文本字段的内容不能为空。

  1. 使用 jsfl 脚本使用“####”等标记字符串填充符号库的所有空文本字段。

  2. 确保文本字段中使用的所有嵌入字体符号都在您的 fla 库中。因为查找/替换工具不会解析使用库中不存在的某些嵌入字体符号的文本字段。事实上,一些嵌入的字体符号可能已被删除和/或映射到默认字体上(手动或在从 CS3 到 CS4 的文件转换期间)。特别要注意嵌入字体符号名称的大小写敏感性。

  3. 在使用查找/替换功能之前,创建文本字段中使用的缺失嵌入字体符号(具有正确区分大小写的名称)。

  4. 创建要用来替换旧嵌入字体符号的新嵌入字体符号。

  5. 现在,即使使用嵌入的字体符号,您也应该能够正确使用 CS4 的查找/替换功能。打开查找/替换窗口。选择“搜索范围:当前文档”(不在“当前场景”中)。在主场景上创建一个新图层。在该层的库中创建所有影片剪辑的实例(例如:选择所有符号库,然后将所选内容拖放到场景中)。

  6. 不要忘记使用 jsfl 脚本或 IDE 的查找/替换文本功能从所有文本字段中删除“####”字符串标记。最后删除为字体替换操作创建的图层以及其中的所有符号实例。

I think I found a successful workaround. So the only way to properly do that in CS4 IDE is to use the find/replace function, but the textfields' content must not be empty.

  1. Use your jsfl script to fulfill all empty textfields of your symbol library with a marker string like '####'.

  2. Ensure all the embedded font symbols used on your textfields are in your fla library. Because find/replace tool will not parse the textfields which use some embedded font symbols which don't exist in the library. Indeed some embedded font symbols may have been deleted and/or mapped on a default font (manually or during a file conversion from CS3 to CS4). Especially take care to case sensitivity on the embedded font symbol names.

  3. Create the missing embedded font symbols used on your textfields (with the right case sensitive names) before using find/replace feature.

  4. Create the new embedded font symbols you want to use to replace the old embedded font symbols.

  5. Now you should be able to use find/replace feature of CS4 properly even with embedded font symbols. Open find/replace window. Select "Search in: Current Document" (not in "Current Scene"). Create a new layer on your main scene. Create an instance of all the movie clips you have in your library in this layer (e.g: select all the symbol library then drag & drop the selection in the scene).

  6. Don't forget to remove your '####' string marker from all the textfields by using your jsfl script or the find/replace Text feature of the IDE. Finally delete the layer you created for the font replacement operation and all the symbol instances in it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文