在 Adobe Flex 3 中使用 Font Awesome
Using Font Awesome in Adobe Flex 3
是否可以在 Adobe Flex 3 中使用 Font Awesome 图标,因为它不允许内联 CSS 样式?如果是这样,如何设置Button或Label的文本在Flex中正确显示为图标?
目前,我对 Flex 3.6A 进行了以下设置,但按钮未正确显示图标:
这是放置在组件包中的...View.mxml 的简化版本:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
currentState="default">
<mx:Style source="../assets/styles.css"/>
<mx:states>
<mx:State name="Hide"/>
<mx:State name="default">
<mx:AddChild>
<mx:HBox>
<mx:Button label="" styleName="complete" id="completeButton" fontFamily="FontAwesome"/>
<mx:Button id="skipButton" />
<mx:Button id="shareButton" />
<mx:Button id="deleteButton" />
<mx:Button id="progressButton" />
</mx:HBox>
</mx:AddChild>
</mx:State>
<mx:State name="Expand"/>
</mx:states>
</mx:Canvas>
这里是styles.css的内容:
@font-face {
fontFamily: FontAwesome;
embed-as-cff: true;
src: url("font-awesome-4.7.0/fonts/fontawesome-webfont.ttf");
fontStyle: normal;
}
@font-face {
fontFamily: FontAwesomeNonCff;
embed-as-cff: false;
src: url("font-awesome-4.7.0/fonts/FontAwesome.otf");
fontStyle: normal;
}
.complete {
font-family: FontAwesome;
color: red;
}
按钮如下所示:
所以我只是试了一下,它似乎有效。请按照以下步骤在 Flex 中使用 font-awesome 字体。
首先从font-awesome网站下载.ttf字体。接下来,将 .ttf 文件导入到您的 Flex 应用程序中,最好是在一个包中。我创建了一个名为 assets/fonts
的包,但这完全取决于您将其保存在项目中的位置。
完成后,创建样式 sheet,我在您选择的任何包中将其命名为 styles.css
。我在一个名为 assets/css
的包中创建了它。在 sheet:
样式中创建字体样式
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@font-face
{
src:url("assets/fonts/fontawesome-webfont.ttf");
fontFamily: fontawesome;
}
.buttons
{
fontFamily:fontawesome;
fontSize:20;
color:#000000;
}
我还创建了一个名为 buttons
的选择器 class 以用于您的按钮。注意字体文件的路径,并确保它与保存它的文件夹结构相匹配。另外,请注意我在 buttons
CSS 选择器中将 fontFamily 用作 fontawesome
。
接下来,将您的 css 导入 flex 项目并在您的按钮中使用样式名称:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Style source="assets/css/styles.css"/>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button width="100" height="40" top="50" left="50" label="" styleName="buttons"/>
</s:WindowedApplication>
这里要注意的重要一点是按钮的label
属性。您必须使用 Unicode 值来找到字体超棒 cheatsheet 中图标旁边的图标。
一旦你 运行 你的代码你应该能够看到按钮中出现的字体。下面附上屏幕截图供您参考。
PS: 我使用的是 Flex 4.x,因此您可能需要对代码进行一些调整,但基本概念应该保持不变。
更新:对于 Flex 3.6A,请确保将 fontWeight:normal
的属性添加到 CSS 选择器以使其工作。这很奇怪,但没有它,它似乎不起作用。所以 CSS 将是:
.buttons
{
fontFamily:fontawesome;
fontSize:20;
fontWeight:normal;
color:#000000;
}
希望这对您有所帮助。干杯。
是否可以在 Adobe Flex 3 中使用 Font Awesome 图标,因为它不允许内联 CSS 样式?如果是这样,如何设置Button或Label的文本在Flex中正确显示为图标?
目前,我对 Flex 3.6A 进行了以下设置,但按钮未正确显示图标:
这是放置在组件包中的...View.mxml 的简化版本:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
currentState="default">
<mx:Style source="../assets/styles.css"/>
<mx:states>
<mx:State name="Hide"/>
<mx:State name="default">
<mx:AddChild>
<mx:HBox>
<mx:Button label="" styleName="complete" id="completeButton" fontFamily="FontAwesome"/>
<mx:Button id="skipButton" />
<mx:Button id="shareButton" />
<mx:Button id="deleteButton" />
<mx:Button id="progressButton" />
</mx:HBox>
</mx:AddChild>
</mx:State>
<mx:State name="Expand"/>
</mx:states>
</mx:Canvas>
这里是styles.css的内容:
@font-face {
fontFamily: FontAwesome;
embed-as-cff: true;
src: url("font-awesome-4.7.0/fonts/fontawesome-webfont.ttf");
fontStyle: normal;
}
@font-face {
fontFamily: FontAwesomeNonCff;
embed-as-cff: false;
src: url("font-awesome-4.7.0/fonts/FontAwesome.otf");
fontStyle: normal;
}
.complete {
font-family: FontAwesome;
color: red;
}
按钮如下所示:
所以我只是试了一下,它似乎有效。请按照以下步骤在 Flex 中使用 font-awesome 字体。
首先从font-awesome网站下载.ttf字体。接下来,将 .ttf 文件导入到您的 Flex 应用程序中,最好是在一个包中。我创建了一个名为 assets/fonts
的包,但这完全取决于您将其保存在项目中的位置。
完成后,创建样式 sheet,我在您选择的任何包中将其命名为 styles.css
。我在一个名为 assets/css
的包中创建了它。在 sheet:
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@font-face
{
src:url("assets/fonts/fontawesome-webfont.ttf");
fontFamily: fontawesome;
}
.buttons
{
fontFamily:fontawesome;
fontSize:20;
color:#000000;
}
我还创建了一个名为 buttons
的选择器 class 以用于您的按钮。注意字体文件的路径,并确保它与保存它的文件夹结构相匹配。另外,请注意我在 buttons
CSS 选择器中将 fontFamily 用作 fontawesome
。
接下来,将您的 css 导入 flex 项目并在您的按钮中使用样式名称:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Style source="assets/css/styles.css"/>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button width="100" height="40" top="50" left="50" label="" styleName="buttons"/>
</s:WindowedApplication>
这里要注意的重要一点是按钮的label
属性。您必须使用 Unicode 值来找到字体超棒 cheatsheet 中图标旁边的图标。
一旦你 运行 你的代码你应该能够看到按钮中出现的字体。下面附上屏幕截图供您参考。
PS: 我使用的是 Flex 4.x,因此您可能需要对代码进行一些调整,但基本概念应该保持不变。
更新:对于 Flex 3.6A,请确保将 fontWeight:normal
的属性添加到 CSS 选择器以使其工作。这很奇怪,但没有它,它似乎不起作用。所以 CSS 将是:
.buttons
{
fontFamily:fontawesome;
fontSize:20;
fontWeight:normal;
color:#000000;
}
希望这对您有所帮助。干杯。