5.MovieClip.getInstanceAtDepth(depth) 這個(gè)方法也是于depth有關(guān)的,它用來(lái)確定指定深度是否已被mc占據(jù) 例: 新建一個(gè)mc,命名my_mc, 添加如下代碼:
trace(_root.getInstanceAtDepth(10));
輸出:undefined,說(shuō)明沒(méi)有mc占據(jù)depth 10, 原因如上,所有手工建立的mc的depth都是負(fù)值, 改代碼為:
my_mc.swapDepths(10); trace(_root.getInstanceAtDepth(10));
輸出結(jié)果: _level0.my_mc
6.throw & try....catch....finally.... 這幾樣?xùn)|東全是針對(duì)異常處理的,學(xué)過(guò)java的朋友一定不陌生 不過(guò)鑒于還有許多人可能沒(méi)有接觸過(guò)java,我還是簡(jiǎn)單介紹一下
a) 什么叫異常(Exception)? 是指特殊的運(yùn)行錯(cuò)誤現(xiàn)象,通常是人為因素造成的。 例如輸入輸出錯(cuò)誤,除數(shù)為0,未找到相應(yīng)的文件等等,都是屬于異常。 b) 異常拋出(throw) 如果在程序過(guò)程中發(fā)生了一個(gè)可識(shí)別的錯(cuò)誤,就產(chǎn)生一個(gè)對(duì)應(yīng)的異常類的實(shí)例。 這個(gè)過(guò)程叫做異常的拋出。 例:
function checkDivide(x:Number,y:Number) { if (y==0) { throw new Error("Divide Error"); //當(dāng)發(fā)生分母為0的錯(cuò)誤時(shí),拋出一個(gè)Error類對(duì)象 //Error類是Flash的內(nèi)建類,用來(lái)聲明一個(gè)錯(cuò)誤 //你可以在bulit-in class-Core中找到它 } }
c) 異常的捕捉和處理 當(dāng)一個(gè)異常被拋出的時(shí)候,不應(yīng)該“拋后不理”,而應(yīng)該設(shè)定專門的語(yǔ)句來(lái)捕捉它, 當(dāng)捕捉到異常的時(shí)候,程序可以進(jìn)行對(duì)應(yīng)的處理,例如跳轉(zhuǎn),或是終止程序運(yùn)行等等。 當(dāng)執(zhí)行一個(gè)可能會(huì)產(chǎn)生異常的方法時(shí),為了捕捉它,應(yīng)將他放到try{}語(yǔ)句塊中, 可以理解為“嘗試運(yùn)行....” 捕捉異常用catch(e){},其中e為異常類Error的實(shí)例的名稱。 例:
try { checkDivide(10,0); } catch (e) { error_txt.text = e.toString(); //toString()是Error類的方法, //將用戶在創(chuàng)建實(shí)例時(shí)給出的錯(cuò)誤信息(本例是"Divide Error")輸出 }
另外,可以自定義異常類,但要求所有用戶自定義異常類必須是Error類的子類 例:
class DivideError extends Error { //通過(guò)extends繼承Error類 var message =" "; //message是Error類的類屬性,表示錯(cuò)誤信息 DivideError() //構(gòu)造函數(shù) { this.message="Divide Error"; } }
拋出自定義異常:
function checkDivide(x:Number,y:Number) { if (y==0) { throw new DivideError(); //拋出自定義異常 } }
d)finally finally與catch一樣,要與try語(yǔ)句聯(lián)合使用,關(guān)系如下: 一個(gè)try語(yǔ)句后面必須跟有catch語(yǔ)句,或finally語(yǔ)句,或者兩者都有, 程序會(huì)先運(yùn)行catch語(yǔ)句,然后在運(yùn)行finally語(yǔ)句,前提是它們存在。 finally語(yǔ)句與catch語(yǔ)句不同的是,它不論try語(yǔ)句中是否拋出了異常, 它都會(huì)執(zhí)行,因?yàn)檫@種特性,所以finally經(jīng)常會(huì)做一些“清理”工作。 例:(這是Flash幫助中的例子)
var account = new Account() try { var returnVal = account.getAccountInfo(); if(returnVal != 0) { throw new Error("Error getting account information."); } } finally { // Delete the 'account' object no matter what. // 刪除account對(duì)象(無(wú)論是否有異常) if(account != null) { delete account; } }
7.CSS Support: 對(duì)文本使用css的步驟: a) 創(chuàng)建定義css的文本。 b) 創(chuàng)建TextField.StyleSheet()對(duì)象。 c) 通過(guò)TextField.StyleSheet()對(duì)象的parseCSS()應(yīng)用css文本。 d) 將文本的styleSheet屬性設(shè)為剛才創(chuàng)建的styleSheet對(duì)象的實(shí)例名。 e) 在文本中應(yīng)用css。
例:
//css定義:紅色,大小20px,斜體,下劃線 cssText=".red {color:#ff0000; font-size:20px; font-style:italic; text-decoration: underline;} "; myStyleSheet = new TextField.StyleSheet(); myStyleSheet.parseCSS(cssText); //文本中應(yīng)用css _root.createTextField("cssTest_txt",10,200,200,300,100); cssTest_txt.styleSheet = myStyleSheet; cssTest_txt.htmlText = "<span class='red'>CSS Test!</span>";
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁(yè) MX2004--AS2.0 新特性實(shí)例教程 [1] 下一頁(yè) MX2004--AS2.0 新特性實(shí)例教程 [3]
◎進(jìn)入論壇Flash專欄版塊參加討論
|