Flex在移动端的死掉,我认同。但你依然是可以在移动端使用Flex的。如果是一些对性能要求不高的应用,使用Flex还是能够大幅提升开发效率的(是开发效率,不是运行效率)。
我甚至用Flex开发手机游戏。当然,这是我在做程序员的过程中做过的最错误的选择了。
你大可不必自己写一套UI组件,这里 Flash&Flex大全 有我整理的许多UI组件,大部分我都试用过,还是比较靠谱的。
如果你一定要自己写,可以基于 minimalcomps - Minimal ActionScript 3.0 code only UI components 这丛坦中套组件来扩展和改写,会省不少力气。
我不建议你现在用Starling+Feathers做UI。Stage3D对显卡是有要求的,且在Android上不够稳定,尤其是在山寨机上。和游戏比起来,应用面向的受众更加普遍,设备的档次可能更低,山寨机也可能更多。为了这部分(或许是你的大部分)用户,还是放弃Stage3D吧。
从技术上讲,选择用Stage3D来做应用的UI,完全是自己找shi。应用中绝大部分使用的是原生DisplayObject List的内容,它们只能位于Stage3D的上层,那个层次怎么调?Stage3D和DisplayObject List混合渲染,那个性能是很低DI~
2. 有些功能需要扩展也就是ANE开发,但是ANE很少,也不好开发调试。
ANE的确是个坑。
为了填这个坑,无数程序员做出了无数渗山的努力。Rect和我把做过的这些ANE都开放了源码,你或许可以找到适合你的: Platform ANEs
当然,上面的ANE主要是针对游戏的。ANE Toolkit | zrong's Blog 是针对Android平台的一些基本功能的,但也并不完善。你依然要自己做许多许多的事情。
在开工之前,你可以去Github上搜索一下,上面也有许多的无私程序员制作的ANE供你使用。
至于ANE的调试,那是个痛苦得让人不忍回首的过程,与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限? 这篇回答里面做了描述。
3. 打包后的程序太大,不便于发布更新。
我在 与 Xcode 相比,用 Adobe AIR/Flex做 iOS 开发有哪些优势和局限? 这个回答中也做过测试。
总之,无论你是否在意多出来的那几MB,反正你想做个2MB以内的应用是不可能了。
等等,或许在Android上是有可能的,因为Android可以支持不绑定运行时。但这样一来,你就要祈祷你的用户知道AIR Runtime是什么东东。有段时间Google Play上关于AIR Runtime最多的投诉就是“病毒!!为什么我启动游戏还要装这个!!!这是个病毒!!!”
你看,小白用户就是这么难搞。
4. 寄希望于Adobe持续稳信数定的支持,但Adobe显然把Flash平台的重心放到游戏上了。
可能是因为插基昌有 FlashAir的设备电源打开纳乎后已经超过了5分钟。
原因:
因为在这5分钟之内,如果没有任何设备通过无线局域网连接到FlashAir的话,搏茄扒FlashAir的无线局域网功能会自动关闭,以节省电源这时再次打开设备电源就可以了。
关于flash air:
1、flash air 是利用air开发出来的,关键利用flash技术,集成多个类似桌面应用,像现在的webqq、三国杀等等。
2、它能够跨平台,而且有着很好的用户体验。
3、用FlashAir™ 的ios应用可以快速、简便地下载和分享无线FlashAir™ SDHC存储卡上的所有图片和文档。
4、初始设置里设置无限局域网安全选项,就可以防止第三方破解或窃取保存在FlashAir里的资料。
AIR(跨 *** 作系统运行时),是一个跨 *** 作系统的集成平台。AIR运行时是一个轻量级的隐形容器,它支持HTML,Flash,Javascript,ActionScript的运行并实现一定扩展。AIR技术并不是一种新的语言,它不需要开发人员学习其他新的开发技术。它可以非常轻松地利用开发人员现有掌握的技术进行开发。AIR运行时包括很多的特性,AIR开发人员可以利用Flex,Flash,HTML等技术创建丰富多彩的本地应用。AIR运行时可以创建和管理本地窗口,读写本地计算机中的磁盘文件,使用任务栏图标和启用图伍亩标,使用本地菜单,使用剪切板等。
Flash项目(FLP
文件)来管理单个项目中的多个文档文件。
Flash项目可将多个相关文件组织在一起以创建复杂的应用程序。可以将版本控制功能与项目配合使用橡庆,以确保在编辑期间使用正确的文件版本,以及防止意外覆盖文件。
接口是方法声明的集合,以使不相关的对象能够彼此通信。例如,Flash Player API 定义了
IEventDispatcher 接口,其中包含的方法声明可供类用于处理事件对象。IEventDispatcher 接口建立了标准方法,供对象梁橘握相互传递事件对象。以下代码显示 IEventDispatcher 接口的定义:
public interface IEventDispatcher
{
function addEventListener(type:String, listener:Function,
useCapture:Boolean=false, priority:int=0,
useWeakReference:Boolean = false):void
function removeEventListener(type:String, listener:Function,
useCapture:Boolean=false):void
function dispatchEvent(event:Event):Boolean
function hasEventListener(type:String):Boolean
function willTrigger(type:String):Boolean
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)