Flex作用域

tinna312 2009-06-25 02:44:46
了解程序作用域
当程序中牵涉到加载外部.swf程序时,了解程序作用域的概念是非常重要的。

首先要了解所有的Flex/Flash程序都是由一系列类组合而成。这一系列类都维持在一个程序作用域中。当仅有一个程序在运行时,程序作用域的概念只是一个形式,因为不可能发生作用域冲突的事情。当加载额外的.swf程序后,情况就不一样了,此时,可能会发生3种情况:
被加载的.swf在现有作用域的子作用域中运行
这种情况下,被加载.swf可以使用父作用域中的所有类,而本身作用域中和父作用域中冲突的类,将被忽视。
这样子有3个好处:
减少内存的占用。
单态管理者(Singleton manager classes)可以访问父级程序,也可以访问子级程序。
从技术角度讲,在编译子级程序时,可以不用把重复的类编译进去,从而减少文件大小
但有时不能忽视子作用域的类。比如碰到类名虽然冲突,但功能却不相同时。
被加载的.swf在一个新的完全独立的作用域中运行
这种情况下,被加载.swf在一个不受任何约束的作用域中运行。虽然不会发生什么冲突,但这样会加大内存的占用。
被加载的.swf在现有作用域中运行
这种情况下,被加载.swf在现有的作用域中运行,被看作现有内容的一部分。常常用于运行期共享库。

实现上述3种情况的代码如下:
//------------------------------------------------------------
// 被加载的.swf在现有作用域的子作用域中运行
//------------------------------------------------------------
var context:LoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var request:URLRequest = new URLRequest("RuntimeLoadingExample.swf");
var loader:Loader = new Loader();
loader.load(request, context);
// 等同于
var request:URLRequest = new URLRequest("RuntimeLoadingExample.swf");
var loader:Loader = new Loader();
loader.load(request);

//------------------------------------------------------------
// 被加载的.swf在一个新的完全独立的作用域中运行
//------------------------------------------------------------
var context:LoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain();
var request:URLRequest = new URLRequest("RuntimeLoadingExample.swf");
var loader:Loader = new Loader();
loader.load(request, context);

//------------------------------------------------------------
// 被加载的.swf在现有作用域中运行
//------------------------------------------------------------
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
var request:URLRequest = new URLRequest("RuntimeLoadingExample.swf");
var loader:Loader = new Loader();
loader.load(request, context);
...全文
405 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。由于文件比较大,压缩成了两个文件上传。 第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临  1.3 Flex概述  1.4 Flash Player的工作模型   1.4.1 Flash Player的帧执行模型   1.4.2 Flash Player渲染模型   1.4.3 Flash中的事件机制  1.5 小结 第2章 Flex企业应用开发基础  2.1 MXML语言   2.1.1 用MXML表示ActionScript对象   2.1.2 查看由MXML文件所翻译的ActionScript代码   2.1.3 IMXMLObject接口  2.2 客户端保持状态  2.3 客户端MVC  2.4 数据绑定   2.4.1 实现数据绑定的方法   2.4.2 数据绑定发生的时机   2.4.3 可以用于数据绑定的属性   2.4.4 数据绑定的用途   2.4.5 使用Bindable元数据标记   2.4.6 绑定到函数、对象和数组   2.4.7 使用可绑定属性链进行工作  2.5 Flex中的组件化编程   2.5.1 认识Flex组件和组件容器   2.5.2 组件生命周期与布局   2.5.3 组件的失效机制   2.5.4 使用ActionScript创建自定义组件  2.6 异步调用   2.6.1 异步调用导致模型数据不一致   2.6.2 异步调用导致用户反复(误)操作  2.7 小结 第3章 Flex企业应用开发中的主要元素  3.1 企业应用的特点  3.2 Flex Application   3.2.1 SystemManager   3.2.2 Preloader   3.2.3 Application的作用和主要属性   3.2.4 通过SWFLoader加载Application   3.2.5 域及跨域访问  3.3 Flex Module   3.3.1 创建模块   3.3.2 模块的编辑与编译   3.3.3 模块文件的加载   3.3.4 主应用和模块的交互  3.4 Flex库文件SWC  3.5 Flex编译模式、链接模式与RSL   3.5.1 使用系统RSL—Framework   3.5.2 其他的系统RSL   3.5.3 RSL的摘要   3.5.4 使用私有RSL  3.6 小结 第4章 Flex on Java企业应用架构 第5章 BlazeDS框架详解 第6章 Flex+BlazeDS应用开发实例 第7章 将范例应用改进为真正的企业应用 第8章 Flex打印 第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder
本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。由于文件比较大,所以压缩成了两个文件上传。 第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临  1.3 Flex概述  1.4 Flash Player的工作模型   1.4.1 Flash Player的帧执行模型   1.4.2 Flash Player渲染模型   1.4.3 Flash中的事件机制  1.5 小结 第2章 Flex企业应用开发基础  2.1 MXML语言   2.1.1 用MXML表示ActionScript对象   2.1.2 查看由MXML文件所翻译的ActionScript代码   2.1.3 IMXMLObject接口  2.2 客户端保持状态  2.3 客户端MVC  2.4 数据绑定   2.4.1 实现数据绑定的方法   2.4.2 数据绑定发生的时机   2.4.3 可以用于数据绑定的属性   2.4.4 数据绑定的用途   2.4.5 使用Bindable元数据标记   2.4.6 绑定到函数、对象和数组   2.4.7 使用可绑定属性链进行工作  2.5 Flex中的组件化编程   2.5.1 认识Flex组件和组件容器   2.5.2 组件生命周期与布局   2.5.3 组件的失效机制   2.5.4 使用ActionScript创建自定义组件  2.6 异步调用   2.6.1 异步调用导致模型数据不一致   2.6.2 异步调用导致用户反复(误)操作  2.7 小结 第3章 Flex企业应用开发中的主要元素  3.1 企业应用的特点  3.2 Flex Application   3.2.1 SystemManager   3.2.2 Preloader   3.2.3 Application的作用和主要属性   3.2.4 通过SWFLoader加载Application   3.2.5 域及跨域访问  3.3 Flex Module   3.3.1 创建模块   3.3.2 模块的编辑与编译   3.3.3 模块文件的加载   3.3.4 主应用和模块的交互  3.4 Flex库文件SWC  3.5 Flex编译模式、链接模式与RSL   3.5.1 使用系统RSL—Framework   3.5.2 其他的系统RSL   3.5.3 RSL的摘要   3.5.4 使用私有RSL  3.6 小结 第4章 Flex on Java企业应用架构 第5章 BlazeDS框架详解 第6章 Flex+BlazeDS应用开发实例 第7章 将范例应用改进为真正的企业应用 第8章 Flex打印 第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧