再现理想 发表于 2015-1-15 22:43:07

来一发进修AS3:delete关头字和类成员

FlashScreensaversMaker能够迅速的将您的Flash作品转化为屏保程序。
delete关头字在Flash中是用来删除界说的变量,可是其实不将工具从内存中扫除失落(这是渣滓搜集器的事情)。它只是将一个变量的援用设置成有效,让内存中的这个工具没法再被援用和利用,也没法再利用forin来列举。

现实上,渣滓处置器(GC)将在特定的时分,主动的从内存中删除那些不再被援用和利用的变量。好比,你创立了两个工具援用A和B,都指向了对工具ObjectX的援用,假如delete了A,其实不会让渣滓搜集器把ObjectX从内存中删除,由于B的援用仍是指向了这个工具。假如将A和B都delete,则不再有对ObjectX的援用,ObjectX也将被渣滓搜集器接纳。比方:

vara:Object=newObject();
varb:Object=a;//b和a援用统一个newObject();
deletea;
trace(b);//输入-在内存中仍是存在
deleteb;
//GC将接纳object这个特征在Flash8和9(AS123)中几近都是一样的,可是在Flash8中,GC的一些特征失掉改良并能更好的事情。(注重,渣滓搜集不是立即的)

固然GC在AS3中并没有甚么实质上的改动,可是由于利用了新的假造机,delete关头字的举动有所改动。如今,delete关头字只能针对类的静态属性和非私有成员无效。而在AS1和2中,delete能被用在一切的器材上。

//ActionScript2
classDeleteVarClass{

publicvarmyVar:Number;

functionDeleteVarClass(){
myVar=1;
trace(myVar);//1
deletemyVar;
trace(myVar);//undefined
}
}

//ActionScript3
package{
publicclassDeleteVarClass{

publicvarmyVar:Number;

publicfunctionDeleteVarClass(){
myVar=1;
trace(myVar);//1
deletemyVar;
trace(myVar);//1
}
}
}在下面的AS3例子中,由于myVar变量是一个私有成员,以是不克不及用delete来删除这个变量。

只管在AS3中不克不及删除类成员,可是假如你想删除一个工具的一切援用,能够经由过程将变量设置为null来取代delete。如:

myVar=null;假如一个工具的一切援用都是null,GC将主动的从内存中删除这个工具。

*Dictionary类

AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类。Dictionary类和Object独一的区分在于:Dictionary工具可使用非字符串作为键值对的键。比方:

varobj:Object=newObject();
obj["name"]=1;//键是字符串"name"
obj=2;//键是1(被转换成字符串"1")
obj=3;//键是newObject(),被转传成字符串""

for(varprop:Stringinobj){
trace(prop);//输入:,1,name
trace(obj);//输入:3,2,1
}也就是说,不管用甚么范例的变量作为键,都将被转换成字符串。同时,假如你利用了分歧的工具作为键,城市北转换成字符串""作为键,因而而指向了统一个数据。比方:
ActionScriptCode:
vara:Object=newObject();
varb:Object=newObject();

varobj:Object=newObject();
obj=1;//obj[""]=1;
obj=2;//obj[""]=2;

for(varprop:Stringinobj){
trace(prop);//traces:
trace(obj);//traces:2
}Dictionary类将没有这个限定,你能够将键设置成任何一种数据范例。比方:

importflash.utils.Dictionary;

vara:Object=newObject();
varb:Object=newObject();

vardict:Dictionary=newDictionary();
dict=1;//dict=1;
dict=2;//dict=2;

for(varprop:*indict){
trace(prop);//traces:,
trace(dict);//traces:1,2
}固然在trace的时分,输入的仍是,可是这个了局是工具的toString的了局。在Dictionary工具中,代表的是分歧的工具援用。

注重,这里的prop的范例是*。这是很主要的,由于dict工具中的键多是任何数据范例的。
ActionScript是一种程序语言的简单文本文件.FLA档案能够直接包含ActionScript。

蒙在股里 发表于 2015-1-17 18:27:38

富媒体广告的概念:富媒体RichMedia,是由英文翻译而来,从字面上很难理解RichMedia到底是什么。

灵魂腐蚀 发表于 2015-1-25 22:37:57

缺点也必然会会有的,但是不同的产品有不同的缺点吧,比如说flash建站它的速度会比较慢。

透明 发表于 2015-2-4 13:08:22

富媒体可应用于各种网络服务中,如网站设计、电子邮件、BANNER、BUTTON、弹出式广告、插播式广告等。  

只想知道 发表于 2015-2-9 23:02:04

flash的流行因素包括了技术上的优势——技术本身的优势;技术掌握上的优势;其他技术的弱势;

若天明 发表于 2015-3-9 20:52:28

flash的优缺点可以如何运用呢?

小女巫 发表于 2015-3-17 03:09:01

只要用心 只要努力 在加上你无限的创意和想象。FLASH无敌了

莫相离 发表于 2015-3-23 18:08:13

逐渐改变了我们生活及生活习惯的一些东西,而正是互联网的大势兴起,Flash动画越来越受到宠爱,现在,Flash动画已成为网络广告的中坚力量。
页: [1]
查看完整版本: 来一发进修AS3:delete关头字和类成员