仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 944|回复: 7
打印 上一主题 下一主题

[学习教程] 来一发进修AS3:delete关头字和类成员

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:43:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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);//输入[objectObject]-在内存中仍是存在
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[1]=2;//键是1(被转换成字符串"1")
obj[newObject()]=3;//键是newObject(),被转传成字符串"[objectObject]"

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

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

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

importflash.utils.Dictionary;

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

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

for(varprop:*indict){
trace(prop);//traces:[objectObject],[objectObject]
trace(dict[prop]);//traces:1,2
}固然在trace的时分,输入的仍是[objectObject],可是这个了局是工具的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、弹出式广告、插播式广告等。  
只想知道 该用户已被删除
5#
发表于 2015-2-9 23:02:04 | 只看该作者
flash的流行因素包括了技术上的优势——技术本身的优势;技术掌握上的优势;其他技术的弱势;
若天明 该用户已被删除
6#
发表于 2015-3-9 20:52:28 | 只看该作者
flash的优缺点可以如何运用呢?
小女巫 该用户已被删除
7#
发表于 2015-3-17 03:09:01 | 只看该作者
只要用心 只要努力 在加上你无限的创意和想象。FLASH无敌了
莫相离 该用户已被删除
8#
发表于 2015-3-23 18:08:13 | 只看该作者
逐渐改变了我们生活及生活习惯的一些东西,而正是互联网的大势兴起,Flash动画越来越受到宠爱,现在,Flash动画已成为网络广告的中坚力量。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 19:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表