本文和大家重点讨论一下Flex与Java编程语言的相似之处,Adobe将Flex构建在FlashPlayer之上,而FlashPlayer在呈现丰富UI方面是得到认可的技术。
Flex与Java编程语言的相似之处
Adobe将Flex构建在FlashPlayer之上,而FlashPlayer在呈现丰富UI方面是得到认可的技术。FlashPlayer非常适合在图形设计器中使用,简化了视频剪辑、时间线、横标广告等的创建。不过,对于已经习惯使用面向对象设计和组件(扩展其他组件)开发应用程序的企业开发人员而言,FlashPlayer应用程序并没有那么诱人。
◆另外,FlashPlayer的原生语言是ActionScript,这是一种遵从ECMA并且类似于JavaScript的脚本语言,而设计者倾向于使用基于XML标记的语言。Adobe及时发现这两者之间的缺口,并通过引入MXML将它们连接起来。Adobe处理Flex的方法类似于Sun?处理Servlets和JSP技术的方法。用MXML编写的代码被转换成ActionScript代码,后者接着被编译成ActionByteCode(ABC)——这与编译Java字节码过程不同。ABC被用二进制SWF格式进行打包,并在用户通过Web浏览器请求它时发送。这些基于SWF的文件可以在本地运行,也可以在独立的FlashPlayer插件中运行。不过,FlashSecurity模块不允许本地文件访问网络资源,反之亦然。
健壮的安全模型
这种安全性预防意味着通过网络运行的应用程序不能访问本地客户机的文件系统——这个功能给JavaApplets带来了许多恶评。就像JVM需要一个main方法一样,Flex应用程序需要一个扩展mx.core.Application的组件作为入口点。就像Java应用程序运行在JVM中一样,SWF文件最终运行在一个称为ActionScriptVirtualMachine(AVM)的虚拟机中。表1显示了Java和Flex的虚拟机的相似性对比。
表1.Java和Flex的虚拟机的对比
【编辑推荐】