簡體   English   中英

將SWF文件內的AS3嵌入式字體加載到應用程序沙箱中-奇怪的行為

[英]AS3 embedded fonts inside swfs loaded into application sandbox - odd behaviour

我在使用Flash 11.5版的AS3,Air App中看到一些非常神秘的字體行為,在Flash Pro CC 2014中編譯了fla文件。

上下文: Air應用程序,shell在運行時將swfs作為“模塊”加載到應用程序域中(因此,它們就像是主應用程序的一部分一樣運行,而不是作為沙箱中的子代運行)。

問題:在某些已加載的swf中,某些包含嵌入字體的動態文本字段沒有出現,而其他則很好。

細節:

  • 這是一個新問題-幾個星期前還不錯的字體現在行為異常。 (同一台計算機,相同的操作系統和Flash版本)

  • 一些“模塊”(swfs)中缺少的相同字體在其他模塊中也存在。

  • 同一家族中的某些字體在任何地方都可以使用(Myriad Pro Semibold),某些地方缺少某些字體,而在其他地方則可以使用(Myriad Pro Regular)

  • 所有TextFields都在movieclips內部,然后在編譯時使用以下命令將其拉入swfs

[Embed(source="someFla.swf", symbol="libraryExportName")]

  • Air'shell'包含並成功使用了Myriad Pro Semi,Myriad Pro Regular和Arial。 (只要)
  • 在測試過程中,某些字體在本地顯示良好,但在安裝Air應用程序后消失(Myriad Pro Regular)
  • 其他字體始終都是垃圾字體-例如Helvetica Neue,在測試中的多個位置以及安裝后都消失了
  • 所有字體均根據需要嵌入到單個swfs(基本拉丁文集)中,但未導出為動作腳本,因為這些字體是在編譯時而不是在運行時設置的。

如果有人有任何見解或建議,那將是很好的。 我的直覺是,嵌入到多個swf中的字體以某種方式“沖突”,但是我無法弄清為什么我會遇到一些沖突而其他情況還不錯的原因。 多年來,我一直在嘗試將字體嵌入Flash中,並嘗試了所有可以想到的方法來克服常見的陷阱。

如果您編譯到多個平台(iOS,Android,Air,EXE,Flash),則嵌入字體總是會導致一些問題,並且只有一種解決方案有效(至少,自從移至該解決方案以來,我們沒有任何問題) :

  1. 在您的項目中包含一個TextField,每種您正在使用的特定非系統字體(fontAwesome,WebDings等;我們將其稱為_webdings_awesome等)為1個

  2. 在設計時將您正在使用的所有特定字符復制到該文本字段

  3. 引導時隱藏文本字段( _webdings.visible = _awesome.visible = false

  4. 忽略所有“您必須包含”消息,因為您正在使用的字符在編譯時將自動包含在您的swf中...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM