`
nlslzf
  • 浏览: 1044894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex delete关键词和类成员

    博客分类:
  • flex
阅读更多
flash中delete关键词用来移除定义的变量,并不能从内存删除,(从内存删除由"垃圾收集器"来完成),delete只是除去创建的变量,这样别的对象无法访问到它,也无法通过for...in等循环来显示变量.
实质上,Garbage Collector,简称GC,当对象没有任何引用时,GC就会物理地从内存中删除此对象.比如,有两个变量A和B,它们都是引用ObjectX,删除A,GC并不会从内存中删除ObjectX,因为此时它还有B这个引用,如果删除了A和B,ObjectX就没有了引用,GC就会认为它应该从内存中删除了.

var a:Object = new Object();
var b:Object = a; // reference same new Object();
delete a;
trace(b); // [object Object] - still exists in memory
delete b;
// GC will mark object for deletion from memory

实际上,在AS1,AS2和AS3中上述工作原理是基本相同的,只是在flash 8中GC有了一点变化,(注意:用GC从内存中删除并不是直接发生的).
尽管有AS3中,有了新的虚拟机来运行脚本,但GC没有太大的实质的变化 ,而delete操作倒是有了些变化.在AS3中,delete只能删除类实例中的动态创建的属性, 但是不能删除类成员(类中变量和方法),在AS1和AS2中,delete可以操作任何东西.AS3缩小了范围,只充许操作动态变量.

Actionscript Code:

// Actionscript 2
class DeleteVarClass {

public var myVar:Number;

function DeleteVarClass() {
myVar = 1;
trace(myVar); // 1
delete myVar;
trace(myVar); // undefined
}
}

Actionscript Code:



// Actionscript 3
package {
public class DeleteVarClass {

public var myVar:Number;

public function DeleteVarClass() {
myVar = 1;
trace(myVar); // 1
delete myVar;
trace(myVar); // 1
}
}
}

上面例子中变量myVar是类定义的一部分,所以在AS3中不能用detele删除它.
AS3中如果要让一个类成员变量在内存中不再引用某个对象或者某个值,可以把这个变量值设为null来删除它.
Actionscript Code:

myVar = null;

如果对象的所有引用全为null,GC就会标记它为要删除的对象,最后会从内存中删除这个对象
分享到:
评论

相关推荐

    FLex 物品分类游戏

    4. **动画效果**:Flex可以利用Tween类和Timeline类实现平滑的动画效果,比如物品移动、选中高亮等,增加游戏的趣味性。 5. **状态管理**:游戏可能有多个阶段或状态,Flex的State机制可以方便地切换UI布局和行为,...

    flex_4框架类_关系图

    总之,Flex 4框架的类关系图是开发和测试过程中不可或缺的资源,它不仅揭示了框架的核心组件及其相互作用,还为开发者和测试人员提供了深入理解框架内部机制的途径,从而提升应用的质量和用户体验。

    flex高级日历应用类

    标题中的“flex高级日历应用类”指的是使用Adobe Flex技术构建的一个复杂日历应用程序。Flex是一种基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户界面的Web应用...

    flex flex和 java交互

    3. **定义数据模型**:在Java端创建数据模型类,这些类将用于传输数据到Flex客户端。 4. **搭建Java服务**:使用Java Servlet或Spring MVC等框架创建一个处理Flex请求的服务。这个服务会接收Flex发送的AMF请求,...

    MapABC Flex API 2.4 类参考

    在MapABC Flex API 2.4中,类是核心组成部分,它们定义了各种功能和对象,如地图对象、图层管理、标记、事件处理等。以下是一些关键的类及其作用: 1. Map类:这是API的基础,用于创建和管理地图实例。你可以通过...

    Flex文件上传工具类

    支持同时上传多个文件,和设置文件过滤 绑定进度条和用于显示进度信息的Text控件

    Windows和Linux下bison和flex的安装包

    《深入理解bison与flex:在Windows和Linux下的安装与应用》 bison和flex是两个在编程领域中广泛使用的工具,特别是在解析器和编译器的开发中扮演着核心角色。bison(以前称为yacc)是一个语法分析器生成器,而flex...

    flex与数据库交互

    同时,Flex提供了ArrayCollection类,可以方便地管理和操作数据集,如排序、过滤和分页。 ```actionscript ``` 这里,`lastResult`属性包含了HTTPService的响应数据,`data`是返回数据中的具体属性,`...

    flex 仿java Map类

    别人写的一个Map类 ,用着还可以 适合 flex新手学习

    flex 类与包的结构图

    在Flex中,类和包的组织结构对于理解和编写高效的代码至关重要。下面我们将深入探讨Flex中的类与包的结构图,以及它们如何形成包的层次和类的分类关系。 首先,让我们从基础开始。在Flex中,类是ActionScript的基本...

    Flex万年历记事本_flex源码

    "Flex万年历记事本"是一个使用Flex技术实现的项目,它结合了日历功能和记事本特性,为用户提供了一种方便的方式来管理和记录日常生活中的事务。 在Flex源码中,我们可以期待看到以下几个关键知识点: 1. **MXML与...

    Flex Flex Flex Flex

    Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...

    flex学习笔记 flex学习总结 flex学习教程

    Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flex框架,可以创建交互性强、用户体验优秀的Web应用。本教程是作者精心编写的Flex学习资料,适合初学者入门,通过...

    flex 和 js 交互

    2. **ExternalInterface**:Flex提供了ExternalInterface类,使得ActionScript能够调用JavaScript函数。首先,你需要在JavaScript中声明要暴露的方法,然后在Flex中通过ExternalInterface.addCallback方法注册这些...

    FLEX安装和配置全步骤

    为了深入学习FLEX,你可以查阅官方文档,参加在线课程,或者加入开发者社区,如Stack Overflow和Flex开发者论坛,获取更多实践经验和解决方案。 总之,FLEX是一个强大的工具,能够帮助开发者创建互动性强、功能丰富...

    flex_api (FLEX接口)

    Flex API是SDK中的关键部分,它提供了大量的类和接口,开发者可以利用这些API创建用户界面、处理数据以及与其他系统进行通信。 2. **ActionScript 3.0** Flex API基于ActionScript 3.0,这是一种面向对象的编程...

    flex类继承关系图

    flex类继承关系图 flex类继承关系图

    flex操作数据库, flex操作本地sql数据库

    2. 定义数据模型:在Flex中创建ActionScript类,这些类通常对应于数据库中的表结构,定义相应的属性和方法。 3. 连接服务:使用RemoteObject组件连接到LCDS服务。配置其endpoint属性指向LCDS服务的URL,以及method...

    FLEX播放器 flex 开发AIR及Flex之mp3播放器教程

    Flex提供了Sound类,用于加载、播放、控制和处理音频。要播放MP3文件,你需要创建一个Sound对象,然后使用load方法加载MP3资源。加载完成后,通过play方法启动播放。此外,Sound对象还提供了一些属性和方法,如...

    flex映射java类

    当在Java项目中有一个`save(User user)`方法,接收一个User类型的JavaBean作为参数时,要在Flex端调用此方法,我们需要在ActionScript中创建一个与Java User类属性和方法对应的User类。这样做是为了确保数据在Flex和...

Global site tag (gtag.js) - Google Analytics