2010-12-01 25 views
1

我试过了一堆JSFL脚本来更改fla字库的textfields字体。我使用这些脚本来更改文本字段的字体,以获得库中存在的嵌入字体。所有脚本都可以通过Flash CS3运行良好,但始终通过Flash CS4失败JSFL - Flash CS4:用嵌入字体替换textfields的字体

让我们举一个例子:用“myEmbeddedArial *”嵌入字体(符号)替换fla场景中所有文本字段使用的“Arial”字体。 的JSFL字体替换指令是以下之一:

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

我可以给许多关于这个问题的所有细节,但确实有人已经观测到它,可能了解它的根源?

感谢

PS:闪光CS4 IDE的注意查找/替换“字体”功能正常工作只有在文本框包含不emtpy串仅包括该文本框的符号是一个场景仅当您在“当前文档”(而不是“当前场景”)中进行搜索时。

+0

我想知道您是否找到解决方案。另外,如果可能的话,我希望看到您的脚本,因为我可能很快就会需要类似的黑客攻击。 – 2010-12-09 11:08:19

+0

查看Rob发送的脚本:http://blog.samueltoth.com/?p=142 它解析库的所有影片剪辑,并将希望的嵌入字形范围添加到这些剪辑中的所有文本字段。 如果您尝试设置嵌入字体符号(取决于各种CS3到CS4文件转换问题),不幸的是textElement.setTextAttr(“face”,“myEmbeddedArial *”) 可能在CS4中严重失败。而更不幸的* setTextAttr *将不会返回任何值,让你知道它是成功还是失败,为什么。如果你需要更多的细节,请回答我从Gmail发给你的邮件。 – khelkun 2011-01-01 19:33:53

回答

0

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

  1. 使用您的jsfl脚本来完成符号库的所有空白文本字段,并带有标记字符串,如'####'。

  2. 确保您文本字段上使用的所有嵌入字体符号都位于fla库中。由于查找/替换工具不会分析使用库中不存在的某些嵌入式字体符号的文本字段。实际上,某些嵌入式字体符号可能已被删除和/或映射到默认字体(手动或在从CS3到CS4的文件转换过程中)。尤其要注意嵌入字体符号名称的区分大小写。

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

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

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

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