Flex4深度解析:外部资源的Embed技术

4星 · 超过85%的资源 需积分: 3 6 下载量 153 浏览量 更新于2024-09-18 收藏 53KB DOC 举报
"这篇内容主要介绍了Flex4中如何进行流程设计,特别是关于嵌入外部资源的使用方法。Flex4允许开发者将图片、声音、SWF和TrueType字体等资源直接编译进应用,以提高访问速度和代码效率,但也可能增加SWF文件的大小和初始化时间。文章通过两个示例详细解释了如何使用@Embed()指令来实现资源的嵌入,以及如何通过变量引用嵌入的资源,以便在多个位置重用。此外,还提及了在样式表中使用Embed()指令来定义UI组件皮肤的方法。" 在Flex4中,流程设计的关键之一就是有效管理和利用资源。嵌入外部资源是一个常用的技术,它允许开发者将必要的素材直接集成到SWF文件中。这样做的好处包括: 1. **访问速度更快**:嵌入资源在编译时就已包含在SWF文件中,避免了运行时加载的延迟。 2. **代码简洁高效**:通过变量引用,可以在多处重复使用同一资源,简化代码编写。 然而,嵌入资源也有其缺点: 1. **文件大小增加**:每个嵌入的资源都会增加SWF文件的体积,可能导致应用下载或加载时间延长。 2. **初始化时间变慢**:更大的SWF文件意味着初始化阶段可能需要更多时间。 3. **更新困难**:如果资源需要更新,必须重新编译整个SWF文件。 文章通过两个实例展示了如何实际操作: **实例1**:直接在MXML组件中使用@Embed()指令。例如,将`logo.gif`作为Button的图标,代码如下: ```xml <mx:Button label="IconButton" icon="@Embed(source='logo.gif')"/> ``` 这行代码告诉Flex编译器将`logo.gif`图片嵌入并用于Button的图标。 **实例2**:定义一个变量引用嵌入资源。首先在Script标签中声明一个变量,并使用@Embed()注解: ```xml <mx:Script> <![CDATA[ [Embed(source="logo.gif")] [Bindable] public var imgCls:Class; ]]> </mx:Script> ``` 然后在多个组件中使用这个变量,如两个Button: ```xml <mx:Button label="IconButton1" icon="{imgCls}"/> <mx:Button label="IconButton2" icon="{imgCls}"/> ``` 这里的`imgCls`变量不仅引用了嵌入的资源,而且由于标记为[Bindable],还可以用于数据绑定。 此外,Flex4的样式表支持使用@Embed()指令定义组件的皮肤。例如,给自定义Button设置不同状态下的皮肤: ```xml <mx:Style> .myCustomButton{ overSkin: Embed(source="overIconImage.gif"); upSkin: Embed(source="upIconImage.gif"); } </mx:Style> ``` 这样,`overIconImage.gif`和`upIconImage.gif`就会分别作为Button在鼠标悬停和未悬停时的皮肤。 理解并熟练运用Flex4中的资源嵌入技巧对于优化流程设计和提升用户体验至关重要。开发者需要根据项目需求权衡利弊,选择合适的方式管理资源。