Flex AIR应用换肤功能(Android和IOS)

简介:

说明

换肤功能,即将整个应用的皮肤都进行更换,其实质,是动态加载swf文件的过程,而这些swf文件则有css文件编译而来。

关于换肤功能,在androidios系统的实现方式是不同的。主要原因,是因为ios不支持本地加载(ipa中包含)多个swf文件。

 

换肤基础

1) 原理 :就是将各种不同的css文件先编译成swf,然后用StyleManager类的loadStyleDeclarations方法加载换肤的swf

2) 基础: 定义css文件,如下:

/* CSS file */

@namespace s "library://ns.adobe.com/flex/spark";

@namespace mx "library://ns.adobe.com/flex/mx";

s|Application{

     font-size: 12;

     skin-class: ClassReference("IndexSkin");

}

注意如果是用skin-class,则皮肤文件必须与样式文件放在同一目录下,否则有问题.

右击css文件 选择css文件编译为swf’,这样就会在编译的目录下产生对应的swf件。

3) 应用:

FlexGlobals.topLevelApplication.styleManager.loadStyleDeclarations2("com/xx/xx/xx/cloudstudio/xx/styles/StyleChoice1.swf",true);

Android换肤

1.  目录结构



2. 定义四套css文件

需要将这四套css文件编译为swf文件,可通过右键点击该css文件,选择“将CSS编译为SWF”即可。


3.  使用换肤功能

注: 标记代码中,ApplicationDomain.currentDomain建议就这么写,因为在ios系统中,这个是必须的,它可以是该swf文件与主swf文件放在同一个域中进行访问。

styleManager.loadStyleDeclarations2(skinName,true, ApplicationDomain.currentDomain,null);其实质就是去加载本地的swf文件。


4. 打包:

对于Android系统,打包可以直接通过FB进行。打包时,需要将要使用的swf文件都打进apk中。


Apk解压后可看见:


IOS换肤: 

  说明:  ios不建议使用换肤功能,因为会影响系统的性能,严重情况下会使应用的崩溃,无法通过苹果的审核。

1 )  开发说明: IOS换肤的实现和Android有所不同,主要是IOS系统不支持同时加载多个swf文件。所以,如果想在ios系统上实现换肤功能,则必须使用服务器文件托管的方式,即将swf文件放到远程服务器上,由本地区访问远程的swf文件,完成换肤功能。

2)  使用txt文件声明要托管的swf文件


注: txt文件里的内容必须按照上图所示格式编写,即每一个swf文件以换行分隔。

3) 在应用程序描述符文件中配置该txt文件


注: 表示根目录下的.txt文件:

4)  使用ADTAOT模式打包ipa


注:要将txt文件、编译后的几个swf文件都进行打包。打包结束后,会生成新的文件夹:


5)  使用打包后生成的swf文件,实现换肤功能

externalStrippedSwfs文件夹中的swf文件都放到远程的服务器中,然后本地访问这些swf文件即可,如:


相关文章
|
开发者 容器
flex 布局属性在实际项目中的应用场景有哪些?
flex 布局属性在实际项目中的应用场景有哪些?
|
NoSQL 应用服务中间件 PHP
布谷一对一直播源码android版环境配置流程及功能明细
部署需基于 CentOS 7.9 系统,硬盘不低于 40G,使用宝塔面板安装环境,包括 PHP 7.3(含 Redis、Fileinfo 扩展)、Nginx、MySQL 5.6、Redis 和最新 Composer。Swoole 扩展需按步骤配置。2021.08.05 后部署需将站点目录设为 public 并用 ThinkPHP 伪静态。开发环境建议 Windows 操作系统与最新 Android Studio,基础配置涉及 APP 名称修改、接口域名更换、包名调整及第三方登录分享(如 QQ、微信)的配置,同时需完成阿里云与腾讯云相关设置。
|
监控 搜索推荐 数据安全/隐私保护
深入探索iOS 14的隐私保护功能
本文将深入探讨iOS 14操作系统中的隐私保护功能,包括新的隐私指示器、应用程序跟踪透明度以及增强的隐私设置。我们将分析这些功能如何提高用户对个人数据的控制权,并讨论它们对应用开发者和广告行业的影响。
532 28
|
Android开发
Android开发表情emoji功能开发
本文介绍了一种在Android应用中实现emoji表情功能的方法,通过将图片与表情字符对应,实现在`TextView`中的正常显示。示例代码展示了如何使用自定义适配器加载emoji表情,并在编辑框中输入或删除表情。项目包含完整的源码结构,可作为开发参考。视频演示和源码详情见文章内链接。
440 4
Android开发表情emoji功能开发
|
存储 安全 数据安全/隐私保护
深入解析iOS 14隐私保护功能:用户数据安全的新里程碑
随着数字时代的到来,个人隐私保护成为全球关注的焦点。苹果公司在最新的iOS 14系统中引入了一系列创新的隐私保护功能,旨在为用户提供更透明的数据使用信息和更强的控制权。本文将深入探讨iOS 14中的几项关键隐私功能,包括App跟踪透明性、简化的隐私设置以及增强的系统安全性,分析它们如何共同作用以提升用户的隐私保护水平。
905 3
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
667 3
|
Android开发 开发者
Android平台无纸化同屏如何实现实时录像功能
Android平台无纸化同屏,如果需要本地录像的话,实现难度不大,只要复用之前开发的录像模块的就可以,对我们来说,同屏采集这块,只是数据源不同而已,如果是自采集的其他数据,我们一样可以编码录像。
211 0
|
7月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
227 3
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
457 1
|
11月前
|
设计模式 容器
13.HarmonyOS流式卡片列表实现指南:Flex多行布局详解
在现代移动应用开发中,流式卡片列表是一种常见且实用的UI设计模式。它能够自适应屏幕宽度,在有限空间内高效展示多个内容项。本教程将详细讲解如何使用HarmonyOS的ArkUI框架中的Flex组件实现一个灵活的流式卡片列表,重点关注多行布局与对齐策略的应用。
353 2