2010-12-01 43 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的查找/替換文本功能,從所有文本字段中刪除'####'字符串標記。最後刪除您爲字體替換操作創建的圖層以及其中的所有符號實例。