as3怎么使對(duì)象朝鼠標(biāo)點(diǎn)擊的地方走?
-
as3怎么使對(duì)象朝鼠標(biāo)點(diǎn)擊的地方走?... as3怎么使對(duì)象朝鼠標(biāo)點(diǎn)擊的地方走? 展開(kāi)
全部評(píng)論(1條)
-
- 下島方 2016-05-01 00:00:00
- 一、在什么地方寫(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í)例名稱命名為:text1,將元件bt從庫(kù)中拖到舞臺(tái)上,實(shí)例名稱命名為:bt_mc.現(xiàn)在寫(xiě)代碼,想一想,代碼寫(xiě)在什么地方,我們來(lái)做下面三個(gè)測(cè)試: 測(cè)試一:在幀動(dòng)作中,直接寫(xiě)代碼,點(diǎn)中diyi層,diyi幀,然后打開(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ò)喝彩吧(有?。。?,出錯(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ù)名稱) (事件類(lèi)型) { // 此處是為響應(yīng)事件而執(zhí)行的動(dòng)作。 } eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse); (事件對(duì)象) (事件類(lèi)型.名稱 函數(shù)名稱) 我想還是用測(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),事件名稱是:?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í)例吧,我們將庫(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);
-
贊(9)
回復(fù)(0)
登錄或新用戶注冊(cè)
- 微信登錄
- 密碼登錄
- 短信登錄
請(qǐng)用手機(jī)微信掃描下方二維碼
快速登錄或注冊(cè)新賬號(hào)
微信掃碼,手機(jī)電腦聯(lián)動(dòng)
注冊(cè)登錄即表示同意《儀器網(wǎng)服務(wù)條款》和《隱私協(xié)議》
熱門(mén)問(wèn)答
- as3怎么使對(duì)象朝鼠標(biāo)點(diǎn)擊的地方走?
- as3怎么使對(duì)象朝鼠標(biāo)點(diǎn)擊的地方走?... as3怎么使對(duì)象朝鼠標(biāo)點(diǎn)擊的地方走? 展開(kāi)
2016-04-30 01:19:14
484
1
- AS3中如何使舞臺(tái)上的元件隱藏,并且不受鼠標(biāo)控制,鼠標(biāo)不能拖動(dòng)它..??
2011-05-08 05:33:01
312
4
- win10系統(tǒng)關(guān)機(jī)后鼠標(biāo)點(diǎn)擊自動(dòng)開(kāi)機(jī)怎么解決方法
2016-12-24 10:12:40
547
2
- 按鍵精靈,多點(diǎn)比色 找到后鼠標(biāo)點(diǎn)擊一個(gè)個(gè)顏色坐標(biāo)怎么寫(xiě)
- 按鍵精靈,多點(diǎn)比色 找到后鼠標(biāo)點(diǎn)擊一個(gè)個(gè)顏色坐標(biāo)怎么寫(xiě)舉例說(shuō)明下,我就是不會(huì)找到后的鼠標(biāo)點(diǎn)擊代碼
2018-01-20 19:42:17
381
1
- 什么原因使伺服電機(jī)總朝一個(gè)方向運(yùn)動(dòng)
2010-11-10 07:37:39
1576
6
- 如何使BP2088壓力變送器走慢
2014-11-09 01:16:08
452
1
- 怎么設(shè)置鼠標(biāo)滾輪?
2014-02-27 00:19:19
358
4
- 虛擬機(jī)鼠標(biāo)怎么出來(lái)
- 虛擬機(jī)鼠標(biāo)怎么出來(lái)... 虛擬機(jī)鼠標(biāo)怎么出來(lái) 展開(kāi)
2010-11-16 15:42:24
964
3
- as3控制元件坐標(biāo)
- 我想讓一個(gè)影片剪輯跟隨鼠標(biāo)移動(dòng) 影片剪輯我已經(jīng)做好了,實(shí)例名為d
2015-09-20 16:58:53
467
1
- 渦輪增壓器鋼皮密封墊凸面是朝排氣管還是朝增壓器?
2017-04-03 02:14:07
477
1
- ug中鼠標(biāo)光柵怎么消除
2015-04-30 15:41:57
449
4
- 電腦鍵盤(pán)鼠標(biāo)上油糊糊的怎么清洗
2015-04-22 17:49:45
1060
2
- 怎么清潔電腦的顯示器、鍵盤(pán)和鼠標(biāo)?
2014-09-03 12:58:47
452
1
- autocad2008對(duì)象選擇過(guò)濾器怎么用
2018-12-02 02:06:32
196
0
- “朝”字的兩個(gè)讀音分別是什么?
2017-11-28 01:57:11
2013
1
- dcs world怎么用鼠標(biāo)開(kāi)按鈕
- dcs world怎么用鼠標(biāo)開(kāi)按鈕怎么調(diào)啊
2018-03-18 08:31:45
1341
1
- 液相色譜法的分析對(duì)象
2011-04-13 04:49:06
383
3
- 電壓表的測(cè)量對(duì)象
- 兩種方法分析圖
2012-04-24 01:50:39
272
3
- 電子順磁共振的檢測(cè)對(duì)象
2018-11-29 02:47:42
430
0
- 臨床化學(xué)檢驗(yàn)的檢測(cè)對(duì)象主要對(duì)象是什么意思
2017-05-25 08:19:44
429
1
4月突出貢獻(xiàn)榜
推薦主頁(yè)
最新話題





參與評(píng)論
登錄后參與評(píng)論