我在 flex 中创建了一个面板,它将有 2 个组合框,它们将显示系统字体系列和字体样式,当用户从组合框中选择任何字体系列或样式时,字体将应用于所选文本层。但是当我尝试为例如欧元符号应用一些字体时,所选文本图层中的文本将变为所有矩形。我发现 Photoshop 的字符面板没有在所选文本图层上应用字体(欧元符号)。
flex中是否有任何方法可以帮助我们检测字体是否适用于所选文本层?
谢谢
我在 flex 中创建了一个面板,它将有 2 个组合框,它们将显示系统字体系列和字体样式,当用户从组合框中选择任何字体系列或样式时,字体将应用于所选文本层。但是当我尝试为例如欧元符号应用一些字体时,所选文本图层中的文本将变为所有矩形。我发现 Photoshop 的字符面板没有在所选文本图层上应用字体(欧元符号)。
flex中是否有任何方法可以帮助我们检测字体是否适用于所选文本层?
谢谢
对于您的问题。我需要一种可以告诉我是否可以应用系统字体的方法?在这里,我有示例,您可以在其中阅读系统字体并检查组合框是否该字体在系统字体中可用。请找到以下代码: -
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
private var systemFontsCollection:ArrayCollection = new ArrayCollection();
private function getSystemFont():void
{
var fonts:Array = Font.enumerateFonts(true).sortOn("fontName");
for (var i:int = 0; i < fonts.length; i++) {
systemFontsCollection.addItem(new String(fonts[i].fontName));
}
}
private function init():void
{
var fontName:String = fontName.selectedLabel;
if(systemFontsCollection.contains(fontName))
{
trace(" ----System Font is applied ----");
}
else{
trace(" ----System Font is NOT applied ----");
}
}
]]>
</fx:Script>
<mx:Form>
<mx:FormItem label="Font name:">
<mx:ComboBox id="fontName" change="init();" creationComplete="getSystemFont()">
<mx:dataProvider>
<fx:Array>
<fx:String>Arial</fx:String>
<fx:String>ArialEmbedded</fx:String>
<fx:String>Verdana</fx:String>
<fx:String>VerdanaEmbedded</fx:String>
</fx:Array>
</mx:dataProvider>
</mx:ComboBox>
</mx:FormItem>
</mx:Form>
</s:Application>