flex 加载方式3:通过actionScript加载,通过loader加载字体然后调用getDefinitionByName()获得字体Class,注册字体后,就可以用了。
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
import flash.system.LoaderContext;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.getDefinitionByName;
/**
* 嵌入外部字体
* @author PhoenixKerry(http://blog.sina.com.cn/yyy98)
*/
public class Main extends Sprite {
private var textField:TextField;
private var fontLoader:Loader;
public function Main() {
textField = new TextField();
textField.selectable = false;
textField.textColor = 0xFF0000;
textField.autoSize = TextFieldAutoSize.LEFT;
addChild(textField);
fontLoader = new Loader();
fontLoader.load(new URLRequest("./assets/game_font.swf"), new LoaderContext(false, loaderInfo.applicationDomain));
fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFontCompleteHandler);
}
// 读取字体完成,通过 TextFormat 应用到 TextField 中的文字
private function loadFontCompleteHandler(e:Event):void {
fontLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadFontCompleteHandler);
var alphaFitnessFontClazz:Class = getDefinitionByName("AlphaFitnessFont") as Class;
Font.registerFont(alphaFitnessFontClazz);
var alphaFitnessFont:Font = new alphaFitnessFontClazz() as Font;
var textFormat:TextFormat = new TextFormat(alphaFitnessFont.fontName, 60, null, true);
textField.defaultTextFormat = textFormat;
textField.embedFonts = true;
textField.text = "Hello, zhz!!!";
}
}
}
/assets/game_font.swf:嵌入式字体swf地址
AlphaFitnessFont:swf字体类名
打包ttf为swf字体代码:
package
{
import flash.display.Sprite;
public class FontAssets extends Sprite
{
[Embed(source="font/AlphaFitness.ttf",fontName="zhzFont1",mimeType="application/x-font")]
public var pixelFont1:Class;
[Embed(source="font/WeibeiFont.ttf",fontName="zhzFont2",mimeType="application/x-font")]
public var pixelFont2:Class;
[Embed(source="font/WindTailsFont.ttf",fontName="zhzFont3",mimeType="application/x-font")]
public var pixelFont3:Class;
[Embed(source="font/YayaSimplifiedFont.ttf",fontName="zhzFont4",mimeType="application/x-font")]
public var pixelFont4:Class;
[Embed(source="font/YegenyouSimplifiedFont.ttf",fontName="zhzFont5",mimeType="application/x-font")]
public var pixelFont5:Class;
}
}
分享到:
相关推荐
FLEX字体助手就是这样一个工具,它专为开发者和设计师提供了方便快捷的方式来处理字体嵌入问题,从而实现跨平台的字体一致性。 FLEX字体助手的核心功能在于生成嵌入字体编码。这个过程涉及到几个关键知识点: 1. *...
通过这种方法,可以将所需的字体文件编译进SWF文件中,或者在运行时动态加载到SWF文件中。这样一来,无论用户计算机上是否安装了该字体,应用程序都能正确显示文本。此外,嵌入字体还具有一些其他优点: - **抗锯齿*...
3. **引入字体库**: 将转换后的SWF文件添加到你的Flex项目中。你可以将其放在项目的资源目录下,以便于管理和引用。 4. **定义字体样式**: 在Flex的MXML或ActionScript代码中,使用`@font-face`定义新的字体样式。...
本话题主要聚焦于如何利用Flex来开发一个能够加载网页的功能,甚至将其扩展成为一个简易的浏览器。下面将详细阐述这一过程中的关键知识点。 一、Flex与Android集成 Flex本身并不直接支持Android原生开发,但它可以...
Flex3StyleExplorer是一个用于探索和测试Flex 3应用中的样式和皮肤的工具。通过这个工具,开发者可以直观地查看和修改组件的外观,包括颜色、字体、边框等样式属性,从而更好地定制用户界面。它允许开发者预览不同...
设定文本内容、字体、大小、颜色以及对齐方式等属性,然后将其添加到GraphicsLayer中。如果需要动态显示数据,可以结合数据驱动的图形更新机制,根据地图上的选择或鼠标悬浮事件来实时更新标注内容。 四、实际操作...
在这个CSS选择器中,我们把`MyCustomFont`放在字体家族的首位,如果浏览器支持并且字体文件加载成功,那么Flex项目将使用这个自定义字体。如果失败,浏览器会依次尝试后面的字体。 `demo.css`可能包含类似上述的...
3. **资源**:包括图片、字体、样式表等,这些资源可以被多个组件或类共享。 4. **元数据**:关于组件或类的元信息,例如元数据可以指定组件的外观和行为。 描述中提到的“flex3引用的swc包”,表明这是一个适用于...
9. **图表 柱状图 黄色/红色**:柱状图是另一种常见的数据可视化方式,Flex支持创建不同颜色和样式的柱状图,可以用于对比不同分类的数据。 10. **Alert 确定 取消 图片样式**:Alert对话框通常用于提示用户信息,...
在Flex中,我们可以通过加载这个XML文件,解析其内容,并将每张图片的URL绑定到一个Image组件上。同时,我们可以创建一个定时器或计时器事件,每隔一定时间自动切换图片。用户还可以通过点击左右箭头或者滑动来手动...
3. `skin_flex_dark_nite.mxml`:这是一个MXML文件,MXML是Flex中用于构建用户界面的标记语言。这个文件可能是其中一种皮肤主题的实现,它可能包含了组件的布局和样式设置。通过解析和加载这个MXML文件,我们可以将...
2. **使用系统字体替代内嵌字体**:内嵌字体会增加编译时间和项目大小,使用系统默认字体可显著减少这些影响。 3. **定期清理工程**:通过右键点击项目并选择"Clean",可以清除编译缓存,解决可能导致编译问题的...
7. 模块化开发:Flex 4.0引入了模块(Module)的概念,允许将大型应用拆分为多个独立加载的模块,从而优化加载时间和内存使用。 8. 集成开发环境(IDE):Flex Builder或Flash Builder(Flex的开发工具)在Flex 4.0...
Flex 基于 Module 模块的...在实际开发中,运用 Flex 的模块化开发方式,可以构建复杂且可扩展的用户界面,同时优化应用程序的性能和维护性。通过合理地组织模块,可以确保代码结构清晰,便于团队协作和项目长期维护。
让我们深入了解一下Flex Tree的用法以及与XML数据结合的方式。 1. **Flex Tree的基本用法** - **创建Tree组件**: 在Flex中,你可以通过在MXML或ActionScript中定义`mx.controls.Tree`组件来创建Tree。 - **数据...
3. **样式和字体获取**: 通过SystemManager,开发者可以访问嵌入的字体、全局样式以及document对象,这些对于应用的视觉呈现和交互至关重要。 4. **生命周期管理**: 当Flex应用启动时,一系列的事件序列发生。...
9. **加载和解析3D模型**:学习如何加载外部3D模型文件,如.obj或.fbx格式,并在Papervision3D中显示它们。 通过深入研究这个案例,开发者可以将所学应用到自己的Flex 3D项目中,创造出富有创新和吸引力的3D Web...
3. **呈现器(Renderer)**:了解如何编写自定义的呈现器类,以改变组件中各个元素的显示方式。 4. **数据绑定**:利用Flex的数据绑定机制将数据模型与界面元素关联,实现动态更新。 5. **事件处理**:学习如何...
整个 Flex 项目确实可以载入到其它项目中的,但不是以 Module 方式载入而是通过普通方法加载,例如使用 SWFLoader 或 Loader 加载,SystemManager 作为顶级容器加入到项目的显示列表。 SystemManager 的 ...
它们通过定义组件的外观,包括颜色、字体、边框、阴影等来实现。皮肤是主题中的核心元素,每个组件可以有一个或多个皮肤,以适应不同的状态和环境。Flex允许开发者自定义皮肤,以实现独特的用户界面设计。 三、CSS...