一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

初識(shí)as3.0

 小馬內(nèi)利 2011-11-16

初識(shí)AS3.0

學(xué)習(xí)AS3.0已有一段時(shí)間了,想把自已對(duì)AS3的一些認(rèn)識(shí)和大家分享一下。主要想說(shuō)說(shuō)AS3與AS2的不同之處,沒(méi)有什么邏輯性,想到什么就寫(xiě)點(diǎn)什么,因此,它不適合AS高手們閱讀。本文將力求用最直白的語(yǔ)言,盡量不用那些艱澀難懂的名詞和術(shù)語(yǔ)。

一、在什么地方寫(xiě)代碼

失望,以為要說(shuō)點(diǎn)啥,原來(lái)是這么小兒科的問(wèn)題。沒(méi)辦法,我說(shuō)過(guò)了,本文不適合AS高手閱讀的。為了更好地理解,我們還是用例子來(lái)說(shuō)明?,F(xiàn)在,就讓我們一起來(lái)回顧一下,在AS2中我們都會(huì)把代碼寫(xiě)在什么地方。我們?cè)贏S2中建一新文檔,新建一個(gè)影片剪輯元件取名為bt,元件很簡(jiǎn)單,隨便畫(huà)一個(gè)方塊就行,你說(shuō)我偏要畫(huà)一個(gè)園,那當(dāng)然隨你高興羅,我沒(méi)意見(jiàn)。然后,在場(chǎng)景中,用文字工具建一文本框,設(shè)為動(dòng)態(tài)文本框,實(shí)例名稱(chēng)命名為:text1,將元件bt從庫(kù)中拖到舞臺(tái)上,實(shí)例名稱(chēng)命名為:bt_mc.現(xiàn)在寫(xiě)代碼,想一想,代碼寫(xiě)在什么地方,我們來(lái)做下面三個(gè)測(cè)試:

測(cè)試一:在幀動(dòng)作中,直接寫(xiě)代碼,點(diǎn)中第一層,第一幀,然后打開(kāi)動(dòng)作面板,在上面寫(xiě)到: 
text1.text = "代碼執(zhí)行了“; 
測(cè)試影片,OK,我們看到了”代碼執(zhí)行了“這幾個(gè)字。

測(cè)試二:還在幀動(dòng)作中寫(xiě)代碼,將代碼改為: 
bt_mc.onPress = function() { 
text1.text = "代碼執(zhí)行了“; 

測(cè)試影片,當(dāng)我們點(diǎn)擊,元件bt_mc時(shí),又看到了“代碼執(zhí)行了”幾個(gè)字。

測(cè)試三:好象還可以把代碼寫(xiě)到元件上,清除幀動(dòng)作中的代碼,點(diǎn)中bt_mc,打開(kāi)動(dòng)作面板,寫(xiě)下如下代碼: 
on(press){ 
_root.text1.text = "代碼執(zhí)行了“; 

測(cè)試影片,點(diǎn)擊bt_mc又看到了“代碼執(zhí)行了”幾個(gè)字。

它怎么老是執(zhí)行了呢,真是的。

下面我們?cè)贏S3中,作相同的測(cè)試:

測(cè)試一、在測(cè)試影片時(shí),我們還是看到了那幾個(gè)字,它都又執(zhí)行了。 
那AS3和AS2不是一樣的?你還寫(xiě)個(gè)啥子勁?是哈,整了半天AS3和AS2整成一樣的了。在“不到黃河心不死”的精神鼓舞下,我們還是把剩下的兩個(gè)測(cè)試做完。

測(cè)試二、在測(cè)試影片時(shí),哈哈,出錯(cuò)了,為我們出錯(cuò)喝彩吧(有?。。鲥e(cuò)了,說(shuō)明AS3與AS2還是不一樣,那么本文就還可以寫(xiě)下去了。

測(cè)試三、當(dāng)我們點(diǎn)中bt_mc,然后打開(kāi)動(dòng)作面板時(shí),我們看到的是: 
“無(wú)法將動(dòng)作應(yīng)用于當(dāng)前所選內(nèi)容” 
真是過(guò)分,它連測(cè)試的機(jī)會(huì)都不給你。

好了,測(cè)試做完了,所謂實(shí)踐出真知,通過(guò)測(cè)試,我們可以得出如下結(jié)論: 
在AS2中,我們可以把代碼寫(xiě)在幀動(dòng)作中,也可以寫(xiě)在影片剪輯、按鈕等元件上。 
在AS3中,我們只能把代碼寫(xiě)在幀動(dòng)作中。(當(dāng)然也可以寫(xiě)在.as等外部文件中,然后將它導(dǎo)入進(jìn)來(lái))。

二、AS3中的事件偵聽(tīng)

看到這里,聰明的你一定會(huì)說(shuō),在AS3中做上面的測(cè)試二時(shí),代碼是寫(xiě)在幀動(dòng)作中的啊,為什么會(huì)出錯(cuò)呢?是啊,正因?yàn)橛心愕穆斆?,才使本文可以繼續(xù)寫(xiě)下去啊。

在AS2中我們?cè)谧尦绦蝽憫?yīng)一個(gè)事件,比如鼠標(biāo)單擊,我們可以在幀動(dòng)作中這樣寫(xiě): 
事件對(duì)象.onPress = function() { 語(yǔ)句}

在AS3中,就不能這樣寫(xiě)了,所以上面的測(cè)試二就出錯(cuò)了。

在AS3中,你必須先聲明一個(gè)函數(shù),其中包含你要執(zhí)行的語(yǔ)句,然后用事件對(duì)象來(lái)偵聽(tīng)事件并調(diào)用這個(gè)函數(shù),這將用到事件偵聽(tīng)語(yǔ)句:addEventListener

無(wú)論何時(shí)編寫(xiě)事件偵聽(tīng)器代碼,該代碼都會(huì)采用以下基本結(jié)構(gòu)(以粗體顯示的元素是占位符,您將針對(duì)具體情況對(duì)其進(jìn)行填寫(xiě)): 
function eventResponse(eventObject:EventType):void 
(函數(shù)名稱(chēng)) (事件類(lèi)型) 

// 此處是為響應(yīng)事件而執(zhí)行的動(dòng)作。 

eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse); 
(事件對(duì)象) (事件類(lèi)型.名稱(chēng) 函數(shù)名稱(chēng))

我想還是用測(cè)試二,來(lái)說(shuō)明好理解一些: 
在AS3中,將測(cè)試二中幀動(dòng)作代碼改為: 
function test(event:MouseEvent):void //先聲明一個(gè)函數(shù)test,其中包含了要執(zhí)行的代碼。 

text1.text = "代碼執(zhí)行了"; 

bt_mc.addEventListener(MouseEvent.CLICK,test) //然后,用bt_mc元件來(lái)偵聽(tīng)事件,并調(diào)用test 
測(cè)試影片,哈哈,代碼它終于執(zhí)行了。

上述代碼中的事件類(lèi)型是:鼠標(biāo)事件(MouseEvent),事件名稱(chēng)是:?jiǎn)螕簦–LICK)。

你又要說(shuō)話了,“這不是更麻煩嗎?”,是有點(diǎn)麻煩哈,不過(guò)據(jù)說(shuō)是更規(guī)范,更利于代碼維護(hù),不過(guò)不管你愿不愿意,你要用AS3你就得這么寫(xiě)。

三、添加顯示對(duì)象

這一節(jié),來(lái)說(shuō)說(shuō)顯示對(duì)象。顯示對(duì)象?啥玩眼,你不是說(shuō)不用專(zhuān)業(yè)術(shù)語(yǔ)嗎?這個(gè)簡(jiǎn)單,你在舞臺(tái)上能看到的東西就叫顯示對(duì)象。你說(shuō)顯示對(duì)象是咋個(gè)到舞臺(tái)上去的呢?你傻哦,當(dāng)然是放上去的啰。那它是咋個(gè)放上去的呢?當(dāng)然是用鼠標(biāo)放上去麻。那只有用鼠標(biāo)才能放上去嗎?那不一定,我還以用attachMovie從庫(kù)里頭加載一個(gè),我也可以用duplicateMovieClip復(fù)制一個(gè),高興了,我還可以用代碼畫(huà)一個(gè),我還可以用loadMovie導(dǎo)入一個(gè)外部文件。你耐我何?真的嗎?你敢不敢試一下嗎?試就試,誰(shuí)怕誰(shuí)?

先試attachMovie:在AS3中在幀動(dòng)作中寫(xiě)如下代碼: 
attachMovie ("bt","bt1",1) 
測(cè)試影片,出錯(cuò)了。我們知道,這在AS2中是不會(huì)出錯(cuò)的,而且會(huì)將庫(kù)中的“bt"元件,加載一個(gè)到舞臺(tái)上。

還在那寫(xiě)文章,要加載庫(kù)里的元件,必須要在元件的鏈接屬性中為元件指定標(biāo)識(shí)符,這一步你都不曉得?是哈,咋把這一步給忘了,趕緊去設(shè)置,在庫(kù)中,bt原件上單擊右鍵,點(diǎn)鏈接,選中“ActionSpript導(dǎo)出“,再看”標(biāo)示符“那一欄,不能用!你能干,你來(lái)設(shè)麻。

其實(shí),在AS3中根本就沒(méi)有attachMovie這一說(shuō)。 
現(xiàn)在試一下:duplicateMovieClip:將代碼改為: 
duplicateMovieClip ("bt_mc","bt1",1) 
bt1._x = 300; 
測(cè)試影片,又出錯(cuò)了。同樣的,AS3中也沒(méi)有duplicateMovieClip這一說(shuō)。

畫(huà)一個(gè)?畫(huà)麻:將代碼改為:

1. createEmptyMovieClip("bt1",0); 
2. with (bt1) { 
3. beginFill(0xFF0000); 
4. moveTo(100,0); 
5. lineTo(200,100); 
6. lineTo(0,100); 
7. lineTo(100,0) 
8. endFill(); 
9. }

測(cè)試影片,還是出錯(cuò)了。而這幾句代碼在AS2中會(huì)畫(huà)出一個(gè)紅色的三角形。 
在AS3中,加載一個(gè)顯示對(duì)象,必須用new關(guān)鍵字來(lái)構(gòu)造,要在舞臺(tái)上看到它,還必須用addChild()將它加到顯示列表中才行。

還是來(lái)做個(gè)實(shí)例吧,我=第(一N課]件網(wǎng)們將庫(kù)中的bt元件,加載到舞臺(tái)上: 

首先我們?cè)趲?kù)中,在bt元件上,點(diǎn)右鍵-鏈接,選中,“為ActionScript導(dǎo)出“,這時(shí)”類(lèi)“和”基類(lèi)“兩欄均變?yōu)榭捎?。這樣,就在Flash.display.MovieClip類(lèi)中創(chuàng)建了一個(gè)”bt"類(lèi)。點(diǎn)擊確定,在接下彈出的對(duì)話框中,再點(diǎn)確定,就行了。 
現(xiàn)在我們可以在代碼中加載bt了 
var bt1:bt = new(bt); //聲明一個(gè)新的bt類(lèi)的實(shí)例,并用new()來(lái)構(gòu)造它 
this.addChild(bt1); //將bt1載到舞臺(tái) 
bt1.x =200; 
bt1.y=300; //設(shè)置bt1的x,y值,注意在AS3中,x和y前而沒(méi)有下劃線了。 
測(cè)試影片,bt已加載到舞臺(tái)上了。

下面我們?cè)贏S3中畫(huà)一個(gè),代碼這樣寫(xiě): 
var bt1:MovieClip = new(MovieClip); //聲明一個(gè)新的mc類(lèi)bt1,并用new來(lái)構(gòu)造它 
bt1.graphics.lineStyle(2, 0x990000, .75);//使用bt1的graphics屬性設(shè)置線條粗細(xì),顏色,透明度

1. bt1.graphics.beginFill(0x00FF00);//以下的代碼是用graphics畫(huà)三角形。 
2. bt1.graphics.moveTo(100,200); 
3. bt1.graphics.lineTo(200,100); 
4. bt1.graphics.lineTo(0,100); 
5. bt1.graphics.lineTo(100,200); 
6. this.addChild(bt1);

在AS3中,除了MovieClip類(lèi)外,還可以用Shape、Sprite 類(lèi)來(lái)繪圖或加載顯示對(duì)象,而且還要更節(jié)約系統(tǒng)資源一些。

加載外部顯示對(duì)象,在AS3中,利用Loader類(lèi)來(lái)加載外部對(duì)象;同樣的也要先聲明一個(gè)Loader類(lèi)實(shí)例:

1. var loadpict:Loader = new(Loader); 
2. var pictURLReq:URLRequest = new URLRequest(pictURL);//pictURL為外部文件的路徑 
3. loadpict.load(pictURLReq); 
4. this.addChild(loadpict);

好了,暫時(shí)寫(xiě)這么多,如果想起了什么,再補(bǔ)充。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    免费黄色一区二区三区| 欧美国产日产综合精品| 亚洲中文在线男人的天堂| 久久精品国产一区久久久| 五月天婷亚洲天婷综合网| 亚洲国产精品久久网午夜| 中文字幕在线区中文色| 亚洲精品日韩欧美精品| 五月的丁香婷婷综合网| 欧美精品久久男人的天堂| 欧美一级特黄特色大色大片| 国产女同精品一区二区| 欧美一级日韩中文字幕| 精品人妻av区波多野结依| 久久精品亚洲情色欧美| 欧美日韩久久精品一区二区| 亚洲香艳网久久五月婷婷| 欧美成人一区二区三区在线 | 久久福利视频这里有精品| 亚洲人妻av中文字幕| 爽到高潮嗷嗷叫之在现观看| 欧美大粗爽一区二区三区| 黄色国产一区二区三区| 久久偷拍视频免费观看| 国产又猛又黄又粗又爽无遮挡| 日韩精品视频一二三区| 国产国产精品精品在线| 人妻内射精品一区二区| 极品少妇一区二区三区精品视频| 欧美日韩一区二区午夜| 开心久久综合激情五月天| 亚洲精品一区三区三区| 亚洲精品成人福利在线| 亚洲一区二区三区日韩91| 中文字幕乱码免费人妻av| 欧美成人一区二区三区在线 | 男女午夜在线免费观看视频| 国产肥女老熟女激情视频一区| 亚洲伦理中文字幕在线观看| 老熟妇2久久国内精品| 亚洲婷婷开心色四房播播|