数码资讯
开始的FlashAS3教程深入的研究(4)从基础
注释:10,删除键和类成员 Flash中使用删除关键字来删除定义的变量,但它不会从内存中删除对象(这是垃圾收集器的工作)。它只是将一个变量的引用设置为无效,这样内存中的对象就不能再次引用和使用,也不能枚举再次使用。 事实上,垃圾处理器(GC)将在 10、删除键和类成员 Flash中使用删除关键字来删
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
注释:10,删除键和类成员
Flash中使用删除关键字来删除定义的变量,但它不会从内存中删除对象(这是垃圾收集器的工作)。它只是将一个变量的引用设置为无效,这样内存中的对象就不能再次引用和使用,也不能枚举再次使用。
事实上,垃圾处理器(GC)将在
10、删除键和类成员
Flash中使用删除关键字来删除定义的变量,但它不会从内存中删除对象(这是垃圾收集器的工作)。它只是将一个变量的引用设置为无效,这样内存中的对象就不能再次引用和使用,也不能枚举再次使用。
事实上,GC会自动删除不再引用和在某一特定时间在内存中使用的变量。例如,你创建一个对象,即A和B,所有引用对象objectx参考。如果删除的是,垃圾收集器将不会从内存中删除objectx,因为B的引用仍然指向该对象。如果A和B都删除,没有参考objectx,和ObjectX将被垃圾收集器回收。例如:
var a:对象=新对象();
var(b):对象= A,B和一个指向相同的新(对象)的引用;
删除;
跟踪(b);内存中的对象对象}输出仍然存在
删除B;
对象的恢复
这个功能几乎是相同的(as123 flash8和9),但在Flash8,一些GC的特点进行了改进和更好地工作。(注意,垃圾收集是不是即时的)
虽然是在AS3的GC没有本质变化,删除的关键词已经改变,因为新的虚拟机使用的行为。现在,删除关键字只能适用于类和非公共成员的动态特性,在1和2,删除可用于一切。
2 / /脚本
类deletevarclass {
公共变量myVar:数;
函数的DeleteVarClass(){
myVar = 1;
微量(myVar); / / 1
删除myVar;
微量(myVar); / /未定义
}
}
3 / /脚本
包{
公共课DeleteVarClass {
公共变量myVar:数;
公共函数DeleteVarClass(){
myVar = 1;
微量(myVar); / / 1
删除myVar;
微量(myVar); / / 1
}
}
}
在以上AS3的例子,因为myVar变量是一个公共成员,这是不可能使用Delete删除变量。
虽然你不能删除在AS3的类成员,如果你想删除所有的引用一个对象,你可以更换删除该变量设置为null。如:
myVar = null;
如果一个对象的所有引用都是空的,GC将自动从内存中删除该对象。
11,字典类
字典类(Flash AS3。utils。词典)是一个新的类,字典类和对象之间的唯一区别是,字典对象可以使用一个非字符串作为键-值对的关键。例如:
var obj:对象=新的对象();
obj {名字} = 1; / /关键是字符串名字
obj { 1 } = 2; / / 1键(转换为字符串1)
obj {新(对象)} = 3; / /新的(对象),关键是转化为字符串{物}
对于(VAR道具:字符串对象){
跟踪(道具);输出:{对象},1,名称
微量(obj {道具}); / /输出:3, 2, 1
}
也就是说,无论使用哪种类型的变量作为键,它都会被转换成一个字符串。同时,如果使用不同的对象作为键,您将把北方转换成字符串{对象对象}作为键,因此它指向相同的数据:
Actionscript代码:
var a:对象=新对象();
var:对象=新对象();
var obj:对象=新的对象();
obj {一} = 1; / / {对象obj { }} = 1;
obj {黑} = 2; / / {对象obj { }} = 2;
对于(VAR道具:字符串对象){
跟踪(道具); /跟踪:{对象对象}
微量(obj {道具}); / /的痕迹:2
}
字典类将不具有此限制,并且可以将密钥设置为任何类型的数据:
进口flash.utils.dictionary;
var a:对象=新对象();
var:对象=新对象();
VaR的字典:字典=新词典();
{一},= 1; / / dict {一} = 1;
字典{黑} = 2; / / dict {黑} = 2;
对于(VAR道具:*在dict){
跟踪(道具); /跟踪:{对象对象},{对象对象}
微量(dict {道具}); / /的痕迹:1, 2
}
而在跟踪输出{对象},但这个结果是对象的ToString结果。在字典对象,不同的对象引用的代表。
注意,这里是支柱型的。这很重要,因为在dict对象的键可以是任何数据类型。
Flash中使用删除关键字来删除定义的变量,但它不会从内存中删除对象(这是垃圾收集器的工作)。它只是将一个变量的引用设置为无效,这样内存中的对象就不能再次引用和使用,也不能枚举再次使用。
事实上,垃圾处理器(GC)将在
10、删除键和类成员
Flash中使用删除关键字来删除定义的变量,但它不会从内存中删除对象(这是垃圾收集器的工作)。它只是将一个变量的引用设置为无效,这样内存中的对象就不能再次引用和使用,也不能枚举再次使用。
事实上,GC会自动删除不再引用和在某一特定时间在内存中使用的变量。例如,你创建一个对象,即A和B,所有引用对象objectx参考。如果删除的是,垃圾收集器将不会从内存中删除objectx,因为B的引用仍然指向该对象。如果A和B都删除,没有参考objectx,和ObjectX将被垃圾收集器回收。例如:
var a:对象=新对象();
var(b):对象= A,B和一个指向相同的新(对象)的引用;
删除;
跟踪(b);内存中的对象对象}输出仍然存在
删除B;
对象的恢复
这个功能几乎是相同的(as123 flash8和9),但在Flash8,一些GC的特点进行了改进和更好地工作。(注意,垃圾收集是不是即时的)
虽然是在AS3的GC没有本质变化,删除的关键词已经改变,因为新的虚拟机使用的行为。现在,删除关键字只能适用于类和非公共成员的动态特性,在1和2,删除可用于一切。
2 / /脚本
类deletevarclass {
公共变量myVar:数;
函数的DeleteVarClass(){
myVar = 1;
微量(myVar); / / 1
删除myVar;
微量(myVar); / /未定义
}
}
3 / /脚本
包{
公共课DeleteVarClass {
公共变量myVar:数;
公共函数DeleteVarClass(){
myVar = 1;
微量(myVar); / / 1
删除myVar;
微量(myVar); / / 1
}
}
}
在以上AS3的例子,因为myVar变量是一个公共成员,这是不可能使用Delete删除变量。
虽然你不能删除在AS3的类成员,如果你想删除所有的引用一个对象,你可以更换删除该变量设置为null。如:
myVar = null;
如果一个对象的所有引用都是空的,GC将自动从内存中删除该对象。
11,字典类
字典类(Flash AS3。utils。词典)是一个新的类,字典类和对象之间的唯一区别是,字典对象可以使用一个非字符串作为键-值对的关键。例如:
var obj:对象=新的对象();
obj {名字} = 1; / /关键是字符串名字
obj { 1 } = 2; / / 1键(转换为字符串1)
obj {新(对象)} = 3; / /新的(对象),关键是转化为字符串{物}
对于(VAR道具:字符串对象){
跟踪(道具);输出:{对象},1,名称
微量(obj {道具}); / /输出:3, 2, 1
}
也就是说,无论使用哪种类型的变量作为键,它都会被转换成一个字符串。同时,如果使用不同的对象作为键,您将把北方转换成字符串{对象对象}作为键,因此它指向相同的数据:
Actionscript代码:
var a:对象=新对象();
var:对象=新对象();
var obj:对象=新的对象();
obj {一} = 1; / / {对象obj { }} = 1;
obj {黑} = 2; / / {对象obj { }} = 2;
对于(VAR道具:字符串对象){
跟踪(道具); /跟踪:{对象对象}
微量(obj {道具}); / /的痕迹:2
}
字典类将不具有此限制,并且可以将密钥设置为任何类型的数据:
进口flash.utils.dictionary;
var a:对象=新对象();
var:对象=新对象();
VaR的字典:字典=新词典();
{一},= 1; / / dict {一} = 1;
字典{黑} = 2; / / dict {黑} = 2;
对于(VAR道具:*在dict){
跟踪(道具); /跟踪:{对象对象},{对象对象}
微量(dict {道具}); / /的痕迹:1, 2
}
而在跟踪输出{对象},但这个结果是对象的ToString结果。在字典对象,不同的对象引用的代表。
注意,这里是支柱型的。这很重要,因为在dict对象的键可以是任何数据类型。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。