首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Flex Label 字體加粗無效解決方案:必須指定中文字體族名

     編輯:更多程式設計知識

Flex 預設字體族 (如 `Arial`, `SimSun` 映射) 僅包含英文字形,**中文字體加粗需顯式指定支援粗體的中文字體族名** (如 `微軟雅黑`, `黑體`, `思源黑體`),並設定 `fontWeight="bold"`。

錯誤與正確寫法對比

<!-- 錯誤:僅設 fontWeight,中文不加粗 -->
<s:Label text="標籤:" fontWeight="bold" fontSize="14"/>

<!-- 正確:指定中文字體族 + fontWeight -->
<s:Label text="標籤:" fontWeight="bold" fontFamily="微軟雅黑" fontSize="14"/>

<!-- 亦可使用系統字體別名 (需客戶端安裝) -->
<s:Label text="標籤:" fontWeight="bold" fontFamily="SimHei" fontSize="14"/>

根本原因

  • Flex 文字引擎 (FTE) 依據 `fontFamily` 查找字體檔案中的粗體字形表
  • 預設 fallback 字體鏈中英文字體優先,中文 fallback 通常只有 Regular 字重
  • 明確指定 `fontFamily="微軟雅黑"` 可直接命中 `msyhbd.ttc` (Bold 字重檔案)

跨平台部署建議

  1. 嵌入字體:將 `msyh.ttc` / `msyhbd.ttc` 嵌入 SWF,`@font-face` 定義 `font-family: "YaHei"; font-weight: bold;`,確保所有平台一致顯示
  2. Web 安全字體棧:`fontFamily="Microsoft YaHei, SimHei, Heiti SC, sans-serif"` 由瀏覽器/運行時依序 fallback
  3. Spark Label 進階:使用 `bold` 標籤語法支援更精細排版控制

常見誤區

  • 以為 `fontWeight="bold"` 全域生效 → **僅對當前 fontFamily 內可用字重生效**
  • 使用 `htmlText` 加 `` 標籤 → 同樣受限於字體族可用字重
  • 混淆 `fontStyle="italic"` (斜體) 與 `fontWeight` (粗體) → 兩者獨立控制
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved