AS3.0算法大全_第1頁
AS3.0算法大全_第2頁
AS3.0算法大全_第3頁
AS3.0算法大全_第4頁
AS3.0算法大全_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、AS功能代碼教程15點間距離公式FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課16矩陣革命雙重循環(huán)AS功能代碼教程14魚眼放大鏡FL基礎(chǔ)理論大師AS功能代碼教程13貪吃蛇游戲制作FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課15絢酷鼠標(biāo)目標(biāo)移動Flash基礎(chǔ)理論課14制作LoadingLoading雜談四JavaScript就這么回事二次編輯貼AS功能代碼教程12填色游戲FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課13FL記事本SharedObject雜談四AS代碼優(yōu)化技巧綜合貼AS功能代碼教程11圖片轉(zhuǎn)場效果FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課12倒計時系統(tǒng)getTime雜談四程序員應(yīng)該學(xué)C語言的十個理由AS功能代碼教

2、程10數(shù)據(jù)結(jié)構(gòu)排序算法FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課11AS文本計算器文本類AS功能代碼教程09點陣字效果FL基礎(chǔ)理論大師AS功能代碼教程08BitmapData動態(tài)效果FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課10緩動效果Tween類雜談三微軟Silverlight和Flash短兵相接AS功能代碼教程07百變圖FL基礎(chǔ)理論大師AS功能代碼教程06AS繪圖總結(jié)及補充FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課09滿天星及變幻線MC.onEnterFrameFlash基礎(chǔ)理論課08旋轉(zhuǎn)花朵for.in游戲賞玩吸泡泡Flash基礎(chǔ)理論課07制作控制滑塊startDrag雜談二人類的15個欲望與游戲設(shè)計AS

3、功能代碼教程04進(jìn)階三角函數(shù)及應(yīng)用FL基礎(chǔ)理論大師Flash基礎(chǔ)理論課06制作移動角色Key類Flash基礎(chǔ)理論課05制作搖獎盤onEnterFrameAS功能代碼教程05打字機(jī)效果及字符串概念FL基礎(chǔ)理論大師AS功能代碼教程03基礎(chǔ)三角函數(shù)及應(yīng)用FL基礎(chǔ)理論大師AS功能代碼教程02數(shù)字魔方及數(shù)組概念FL基礎(chǔ)理論大師AS功能代碼教程01通用延遲代碼及FPS概念FL基理大師原創(chuàng)Flash基礎(chǔ)理論課04制作音樂播放器Sound類Flash基礎(chǔ)理論課03制作簡易涂鴉板畫線指令Flash基礎(chǔ)理論課02制作個性鼠標(biāo)updateAfterEventFlash基礎(chǔ)理論課01制作時鐘Date類雜談一什么是真正

4、的Flash高手?希望朋友們多提保貴議建,您的題問和課題將成文我前進(jìn)的最大動力。很不錯的,我把內(nèi)容復(fù)制如下。感謝分享1。雜談五成為編程高手的八大奧秘不知不覺做軟件已經(jīng)做了十年,有成功的喜悅,也有失敗的痛苦,但總不敢稱自己是高手,因為和我心目中真正的高手們比起來,還差得太遠(yuǎn)。世界上并沒有成為高手的捷徑,但一些基本原則是可以遵循的。扎實的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、編譯原理,這些是所有計算機(jī)科學(xué)的基礎(chǔ),如果不掌握它們,很難寫出高水平的程序。程序人人都會寫,但當(dāng)你發(fā)現(xiàn)寫到一定程度很難再提高的時候,就應(yīng)該想想是不是要回過頭來學(xué)學(xué)這些最基本的理論。不要一開始就去學(xué)OOP,即使你再精通OOP,遇到一些基本算法

5、的時候可能也會束手無策。因此多讀一些計算機(jī)基礎(chǔ)理論方面的書籍是非常有必要的。豐富的想像力不要拘泥于固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎(chǔ)上,除計算機(jī)以外,多涉獵其他的學(xué)科,比如天文、物理、數(shù)學(xué)等等。開闊的思維對程序員來說很重要。最簡單的是最好的這也許是所有科學(xué)都遵循的一條準(zhǔn)則,復(fù)雜的質(zhì)能轉(zhuǎn)換原理在愛因斯坦眼里不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現(xiàn),也更容易維護(hù)。遇到問題時要優(yōu)先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復(fù)雜的方案。不鉆牛角尖當(dāng)你遇到障礙的時候,不妨?xí)?/p>

6、時遠(yuǎn)離電腦,看看窗外的風(fēng)景,聽聽輕音樂,和朋友聊聊天。當(dāng)我遇到難題的時候會去玩游戲,當(dāng)負(fù)責(zé)游戲的那部分大腦細(xì)胞極度亢奮的時候,負(fù)責(zé)編程的那部分大腦細(xì)胞就得到了充分的休息。當(dāng)重新開始工作的時候,我會發(fā)現(xiàn)那些難題現(xiàn)在竟然可以迎刃而解。對答案的渴求人類自然科學(xué)的發(fā)展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們?nèi)ジ冻觥V灰銏远ㄐ拍?,一定要找到問題的答案,你才會付出精力去探索,即使最后沒有得到答案,在過程中你也會學(xué)到很多東西。多與別人交流三人行必有我?guī)?,也許在一次和別人不經(jīng)意的談話中,就可以迸出靈感的火花。多上上網(wǎng),看看別人對同一問題的看法,會給你很大的啟發(fā)。良好的編程風(fēng)格注意養(yǎng)

7、成良好的習(xí)慣,代碼的縮進(jìn)編排,變量的命名規(guī)則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經(jīng)清楚地表達(dá)了你的思想,就不必再加注釋了,如果注釋和代碼不一致,那就更加糟糕。韌性和毅力這也許是“高手”和一般程序員最大的區(qū)別。高手們并不是天才,他們是在無數(shù)個日日夜夜中磨煉出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內(nèi)的素數(shù)表,把它們?nèi)汲聛恚缓笤贆z查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。2。AS功能代碼教程15點間距離公式FL基礎(chǔ)理論大

8、師兩點間距離Math.sqrt(Math.pow(p1._x-p2._x),2)+Math.pow(p1._y-p2._y),2)由這個公式可以推導(dǎo)出某點與原點距離公式:因為原點坐標(biāo)為(0,0),所以公式變形如下Math.sqrt(p1._x*p1._x+p1._y*p1._y)下面我們就來運用這兩個公式來制作一些效果實例一:旋轉(zhuǎn)指針?biāo)悸罚呵笠粋€夾角的0方法很多如:distance.jpg正弦函數(shù)sin0=y/r余弦函數(shù)cos0=x/r正切函數(shù)tan0=y/x余切函數(shù)cot0=x/y正割函數(shù)sec0=r/x余割函數(shù)csc0=r/y這些三角函數(shù)都可以求出同一個夾角0在本實例中只使用atan和ac

9、os而沒有使用其它三角函數(shù)是因為他們的返回值都是一個任意數(shù)字,而其它函數(shù)的返回值均為限定的數(shù)字。步驟一:繪制一指針,保存為影片剪輯,注冊點在指針根部,實例名為pointer步驟二:在第一幀加入AS代碼(正切函數(shù)):pointer.onMouseMove=function()vardx=_xmouse-this._x;vardy=_ymouse-this._y;vartheta=Math.atan2(dy,dx);/使用正切函數(shù)求出夾角this._rotation=theta/Math.PI*180;/將弧度轉(zhuǎn)換為角度;在第一幀加入AS代碼(反余弦函數(shù)):pointer.onMouseMove=

10、function()vardx=_xmouse-this._x;vardy=_ymouse-this._y;varr=Math.sqrt(dx*dx+dy*dy);/r為點與鼠標(biāo)的直線距離,這里也是斜邊rvartheta=Math.acos(dx/r)*Math.abs(dy)/dy;/使用反余弦函數(shù)求出夾角this._rotation=theta/Math.PI*180;/將弧度轉(zhuǎn)換為角度;實例二:泡泡效果思路:通過判斷鼠標(biāo)的移動距離改變復(fù)制出泡泡的大小,移動得越遠(yuǎn),泡泡越大步驟一:繪制泡泡,保存為影片剪輯,連接一導(dǎo)出一標(biāo)志符bubble步驟二:在第一幀加入AS代碼:varn:Number=

11、0;varold_x,old_y;/這兩個全局變量用于存儲前一次的鼠標(biāo)位置_root.onMouseMove=function()vardx=_xmouse-old_x;vardy=_ymouse-old_y;vardistance=Math.sqrt(dx*dx+dy*dy);/求出本次鼠標(biāo)位置和前一次鼠標(biāo)位置的距離varp=attachMovie(bubble,b+n,n);p._x=_xmouse;p._y=_ymouse;p._width=p._height=distance;/用得出的距離為泡泡設(shè)置尺寸p.onEnterFrame=function()if(this._alpha0)

12、this._xscale=this._yscale+=5;this._alpha-=5;/做一個泡泡變大消失的效果elsedeletethis.onEnterFrame;removeMovieClip(this);/泡泡看不見后,別忘了刪除他的影片和函數(shù),否則會卡喲;old_x=_xmouse;old_y=_ymouse;/保存本次鼠標(biāo)位置作為前一次鼠標(biāo)的位置n+;實例三:輻射點效果思路:把點以行列的形式平均分配到舞臺上用點間距離公式,判斷每個點與鼠標(biāo)的距離縮放值=距離-1204當(dāng)120距離220時,則縮放值開始變小1000,表現(xiàn)為向內(nèi)開始變小5.當(dāng)距離120時,則縮放值小于0,表現(xiàn)為向內(nèi)開始

13、變大,開始走向負(fù)數(shù)6當(dāng)距離為0時,則縮放值為-120,表現(xiàn)為鼠標(biāo)中心位置上較大的那些圓步驟一:繪制一黑點,尺寸為20*20,保存為影片剪輯,注冊點在中心,連接一導(dǎo)出一標(biāo)志符dot步驟二:varsize=20;/黑點的大小varColum=Math.floor(Stage.width/size);varRow=Math.floor(Stage.height/size);for(vari=0;iColum;i+)for(varj=0;j100)d=100;/或d=d100?100:d;this._xscale=this._yscale=d;實例四:狡猾的小球先復(fù)習(xí)一下圓的參數(shù)方程:x坐標(biāo)二R*co

14、s0+m;y坐標(biāo)二R*sin0+n根據(jù)正弦函數(shù)sinB=y/r和余弦函數(shù)cos0二x/r推出圓的參數(shù)方程為:x坐標(biāo)二R*(x/r)+m;y坐標(biāo)二R*(y/r)+n其中(m,n)為原點坐標(biāo)。思路:使用變型的圓參數(shù)方程:x=R*(x/r)+m;y=R*(y/r)+n為了讓小球躲得更遠(yuǎn)可以加入新圓心坐標(biāo)dif_x,dif_y得出球的新位置二球的初始位置一(圓心位置+圓上的位置)步驟一:繪制一黑點,尺寸為20*20,保存為影片剪輯,注冊點在中心,連接一導(dǎo)出一標(biāo)志符dot步驟二:在第一幀加入AS代碼:varsize=30;/比點的尺寸大出10像素作為行列間距varColum=Math.floor(Sta

15、ge.width/size)-2;varRow=Math.floor(Stage.height/size)-2;/行數(shù)列數(shù)減2,目的是在周圍空出2行varMax=1000;/反映及影響圓半徑的常量for(vari=0;iColum;i+)for(varj=0;jRow;j+)varp=_root.attachMovie(dot,d+(i*Row+j),i*Row+j);p._x=p.oldx=20+(size/2)+i*size;p._y=p.oldy=20+(size/2)+j*size;/以行列的形式把點平均分配到舞臺上,同時保存初始位置為oldx,oldyp.onEnterFrame=f

16、unction()vardx=_xmouse-this._x;vardy=_ymouse-this._y;varr=Math.sqrt(dx*dx+dy*dy);/r為點與鼠標(biāo)的直線距離,這里也是斜邊rvarCircle_x=(dx/r)*Max/r;varCircle_y=(dy/r)*Max/r;/計算出該點在圓上的位置,Max/r為半徑,所以r越小半徑越大vardif_x=(this.oldx-this._x)/2;vardif_y=(this.oldy-this._y)/2;/以球的新位置與初始位置之差為新的圓心this._x=this.oldx-(dif_x+Circle_x);th

17、is._y=this.oldy-(dif_y+Circle_y);/得出球的新位置二球的初始位置一(圓心位置+圓上的位置)/之所以減去(圓心位置圓上的位置):讓小球位置與鼠標(biāo)位置相反;教程到此結(jié)束QQ:147461195(FL基理大師)3。Flash基礎(chǔ)理論課16矩陣革命雙重循環(huán)在本次課中我們將介紹兩種方法來完成該效果,重點掌握雙重循環(huán)語句還要介紹TextField._alpha方法不可用的解決辦法單循環(huán):for(i=0;i5;i+)trace(i=+i);運行結(jié)果如下:i=0i=1i=2i=3i=4雙重循環(huán):就是在for循環(huán)中再加入一個for循環(huán)for(i)for(j)下面看一個雙重循環(huán)的例

18、子for(i=0;i5;i+)for(j=0;j3;j+)trace(i=+i+j=+j);運行結(jié)果如下:i=0j=0i=0j=1i=0j=2i=1j=0i=1j=1i=1j=2i=2j=0i=2j=1i=2j=2i=3j=0i=3j=1i=3j=2i=4j=0i=4j=1i=4j=2i=5j=0i=5j=1i=5j=2i=6j=0i=6j=1i=6j=2i=7j=0i=7j=1i=7j=2i=8j=0i=8j=1i=8j=2i=9j=0i=9j=1i=9j=2總結(jié)一下可以這樣寫:當(dāng)i=0時,j=0,j=1,j=2當(dāng)i=1時,j=0,j=1,j=2當(dāng)i=2時,j=0,j=1,j=2當(dāng)i=3時,

19、j=0,j=1,j=2當(dāng)i=4時,j=0,j=1,j=2我們再形象地解釋一下雙重循環(huán)的意思:把for(i=0;i5;i+).i從0到4,循環(huán)了5次,就把這五次循環(huán)表示為5個人小趙,小錢,小孫,小李,小周把for(j=0;j3;j+).j從0到2,循環(huán)了3次,就把這三次循環(huán)表示為3件事買菜,買肉,買米就相當(dāng)于:當(dāng)i=小趙時,他要去j=買菜,j=買肉,j=買米當(dāng)i=小錢時,他要去j=買菜,j=買肉,j=買米當(dāng)i=小孫時,他要去j=買菜,j=買肉,j=買米當(dāng)i=小李時,他要去j=買菜,j=買肉,j=買米當(dāng)i=小周時,他要去j=買菜,j=買肉,j=買米本節(jié)中將用到的利用雙重循環(huán)實現(xiàn)行列分配的問題col

20、umrow2.jpg已知庫中有一個鏈接名為mc的影片剪輯,為一個圓,大小為30,注冊點在左上varsize=30;varColum=Math.floor(Stage.width/size);/根據(jù)圓大小,確定橫向能容納多少個圓,就是有多少個列varRow=Math.floor(Stage.height/size);/根據(jù)圓大小,確定縱向能容納多少個圓,就是有多少個行for(vari=0;iColum;i+)for(varj=0;jRow;j+)varp=_root.attachMovie(dot,d+(i*Row+j),i*Row+j);/i*Row+j確保每個影片的新名字和深度都不相同/這里

21、也可使用getNextHighestDepth()p._x=i*size;p._y=j*size;/設(shè)置圓的位置,雙循環(huán)的意思是:有Colum行,且每一行中都有Row個列解釋過來就是:當(dāng)x坐標(biāo)=第1列時,分配Row個圓,y坐標(biāo)從0到Row-1當(dāng)x坐標(biāo)=第2列時,分配Row個圓,y坐標(biāo)從0到Row-1當(dāng)x坐標(biāo)=第3列時,分配Row個圓,y坐標(biāo)從0到Row-1當(dāng)x坐標(biāo)=第Colum-1列時,分配Row個圓,y坐標(biāo)從0到Row-1矩陣革命:制作方法(一)思路:制作一個有若干幀的影片剪輯,每一幀都代表一個隨機(jī)的字母或數(shù)字;設(shè)置影片文本的大小為30,用舞臺大小除以字母大小,確定每行每列能容納多少文本;每

22、列容納字符個數(shù)為Colum個,共Row列;根據(jù)Colum和Row的確定影片的行位置和列位置。步驟1:columrow2.jpg制作一個影片剪輯,有若干幀,每幀中一個靜態(tài)文本框內(nèi)容為一個字母或一個數(shù)字字體:Arial,字號:30,加粗,顏色:0 x00FF00連接一導(dǎo)出一字符txt步驟2:在第一幀中寫入代碼varsize=32;/比文本框大出2個象素,做為行列間距varColum=Math.floor(Stage.width/size);/按照字符大小,確定每列能容納多少個字符varRow=Math.floor(Stage.height/size);/按照字符大小,確定每行能容納多少個字符for

23、(vari=0;iColum;i+)for(varj=0;jRow;j+)varp=_root.attachMovie(txt,t+(i*Row+j),i*Row+j);p._x=i*size;p._y=j*size;/安排每個新字符影片的位置,每一行中都有Row個列p.onEnterFrame=function()this.gotoAndStop(random(this._totalframes);/每次隨機(jī)取一幀,實現(xiàn)隨機(jī)字母或數(shù)字this._alpha=random(100);/隨機(jī)的設(shè)置影片剪輯的透明度;在寫本節(jié)內(nèi)容時,原本只想用方第二種方法(純AS編寫),但在測試中發(fā)現(xiàn)TextFie

24、ld._alpha和TextField._rotation方法是“無效”的,隨后在網(wǎng)絡(luò)上發(fā)現(xiàn)了解決的辦法,下面我們先來看一下純AS編寫的部分,然后在看“失效”的解決辦法。制作方法(二)思路:這次只使用創(chuàng)建TextFiled的方法,而不是再使用影片剪輯中的方法在第一幀中加入以下代碼vart_f:TextFormat=newTextFormat();t_f.size=20;t_f.font=Arial;/設(shè)置字體格式varColum=Math.floor(Stage.width/t_f.size);varRow=Math.floor(Stage.height/t_f.size);for(vari=

25、0;iColum;i+)for(varj=0;jRow;j+)varT=_root.createTextField(txt+(i*Row+j),i*Row+j,0,0,0,0)/創(chuàng)建文本框T._x=i*t_f.size;T._y=j*t_f.size;/設(shè)置其坐標(biāo)位置T.textColor=0 x00ff00;T.setNewTextFormat(t_f);T.autoSize=true;T.selectable=false;/T.embedFonts=true;/設(shè)置文本框?qū)傩訽root.onEnterFrame=function()for(vari=0;iColum*Row;i+)if(M

26、ath.random()0.5)thistxt+i.text=String.fromCharCode(65+random(26);/隨機(jī)的字母elsethistxt+i.text=String.fromCharCode(48+random(10);/隨機(jī)的數(shù)字/thistxt+i._alpha=random(100);/隨機(jī)的文本透明度;解釋一下被注釋掉的兩句:T.embedFonts=true;使用嵌入字體輪廓進(jìn)行呈現(xiàn),前提是在庫中要導(dǎo)入該字體元件thistxt+i._alpha=random(100);在T.embedFonts=true;設(shè)置文本框透明度TextField._alpha和

27、TextField._rotation方法“失效”解決辦法在庫中創(chuàng)建字型點庫右上角的倒三角,選擇“新建字型.”建立字體元件(和你的字體名字變量一樣),然后選擇字體右鍵選擇你剛創(chuàng)立的元件。選擇“為ActionScript導(dǎo)出”寫入鏈接名,本節(jié)中為Arial設(shè)置TextField._embedFonts=true使用嵌入字體輪廓進(jìn)行呈現(xiàn),是使用TextField._alpha和TextField._rotation的前提,嵌入字體輪廓就是指在庫中導(dǎo)入字型。好了現(xiàn)在可以加上注釋掉的兩句使一使效果了教程到此結(jié)束。QQ:147461195(FL基理大師)4。AS功能代碼教程14魚眼放大鏡FL基礎(chǔ)理論大師

28、本節(jié)加了星號,借黑羽的話:“本節(jié)的內(nèi)容稍微有些難度,如果不明白,可以暫時不看,待日后碰到類似問題時,再來查閱”下面我們先用圖解法來解釋一下本實例思路:魚眼放大鏡是于若干個漸小的圓組成的;使每個圓都去遮罩一個漸大的圖片來實現(xiàn),里面的小圓遮罩大較圖片,外面的大圓遮罩較小圖片;還有最后一個重要的步驟是對焦,由于圖片是漸大的,所以鼠標(biāo)所在的一個點位對于小圖來說也許是頭部,而對于大圖來說也許都到了場外,那么顯示出的效果就錯了。使用對焦可以讓鼠標(biāo)指在小圖上是頭部,大圖上也要是頭部,這么說給大家一個印象,下面請看圖解.圖解:Mag4.jpg1首先在舞臺上放入兩個影片剪輯,其中一個是圖片,實例名pic,注冊點

29、在左上(0,0);另一個是圓,大小:200*200,實例名ball,注冊點在中心;Mag4.jpg2魚眼放大鏡是于若干個漸小的圓組成,讓這些圓作為鏡片,重疊在一起,同時成像,圓(鏡片)的數(shù)量越多,成像效果越細(xì),圖中數(shù)量為3代碼如下:varCount:Number=3;/復(fù)制圓(鏡片)的數(shù)量for(vari=0;iCount;i+)varb=ball.duplicateMovieClip(B+i,i*2+1);/復(fù)制圓b._xscale=b._yscale=(1-i/Count)*100;/圓的縮放=(1-第i個圓/圓的數(shù)量)*100,例:100908070Mag4.jpg每個圓都加載一個漸大的

30、圖片,先來創(chuàng)建這些漸大的圖片,圖的數(shù)量為3代碼如下:varCount:Number=3;/復(fù)制圓(鏡片)的數(shù)量varZoom:Number=0.08;/圖片放大的遞增倍數(shù)for(vari=0;iCount;i+)vardif=1+i*Zoom;/縮放比(dif)為遞增量,例:1.001.081.161.24.varp=pic.duplicateMovieClip(P+i,i*2);/復(fù)制圖片p._xscale=p._yscale=dif*100;/圖片縮放=遞增量*100,例:100108116124.Mag4.jpg綜合上述實現(xiàn),里面的小圓遮罩大較圖片,外面的大圓加載較小圖片,再加入一句保存

31、初始縮放比的語句varCount:Number=30;/復(fù)制圓(鏡片)的數(shù)量varZoom:Number=0.08;/圖片放大的遞增倍數(shù)for(vari=0;iCount;i+)vardif=1+i*Zoom;/dif為遞增量,例:1.001.081.161.24.varb=ball.duplicateMovieClip(B+i,i*2+1);/復(fù)制圓b._xscale=b._yscale=(1-i/Count)*100;/圓的縮放=(1-第i個圓/圓的數(shù)量)*100,例:100908070b.Zoom=dif;/保存圖片的縮放比varp=pic.duplicateMovieClip(P+i,

32、i*2);/復(fù)制圖片p._xscale=p._yscale=dif*100;/圖片縮放=遞增量*100,例:100108116124.p.setMask(b);/進(jìn)行遮罩對焦請大家看一看下面的演示動畫,也許能讓你了解他的含義Mag4.jpg這是兩張沒有對焦的圖片,大家注意,如果鼠標(biāo)在小圖的紅星位置,那么對于大圖來說,也許是人物的臉部,而不是大圖的紅星位置Mag4.jpg這是兩張執(zhí)行對焦后的圖片,如果鼠標(biāo)在小圖的紅星位置,那么對于大圖來說,也要在紅星位置上如何實現(xiàn)對焦功能,請看下面代碼:_root.onMouseMove=function()for(vari=1;i=Count;i+)varba

33、lls=thisB+i;balls._x=_xmouse;balls._y=_ymouse;/使每個鏡片都跟著鼠標(biāo)移動thisP+i._x=_xmouse-(_xmouse-pic._x)*balls.Zoom;thisP+i._y=_ymouse-(_ymouse-pic._y)*balls.Zoom;/調(diào)整每個復(fù)制出的圖片的位置/新的位置=鼠標(biāo)位置一(鼠標(biāo)位置一原圖pic的位置)*縮放比;根據(jù)對焦公式:新的位置=鼠標(biāo)位置一(鼠標(biāo)位置一原圖pic的位置)*縮放比本實例中,原圖pic的位置為左上(0,0)點,所以,公式可以變形為:新的位置=鼠標(biāo)位置一鼠標(biāo)位置*縮放比這個公式也是本節(jié)的難點,就以

34、原圖位置在左上(0,0)為例如果鼠標(biāo)在右邊,那么新位置肯的為負(fù)數(shù),新位置向左移,因為縮放比是大于1.00的數(shù);反之,則是兩個負(fù)數(shù)相加,新位置向右移好的,整個思路就這些,下面給出完整過程步驟1:首先在舞臺上放入兩個影片剪輯其中一個是圖片,實例名”pic”,注冊點在左上(0,0);另一個是圓,大小:200*200,實例名”ball”,注冊點在中心步驟2:在第一幀加入AS代碼varCount:Number=30;/復(fù)制圓(鏡片)的數(shù)量varZoom:Number=0.08;/圖片放大的遞增倍數(shù)for(vari=0;iCount;i+)vardif=1+i*Zoom;/dif為遞增量,例:1.001.

35、081.161.24.varb=ball.duplicateMovieClip(B+i,i*2+1);/復(fù)制圓b._xscale=b._yscale=(1-i/Count)*100;/圓的縮放=(1-第i個圓/圓的數(shù)量)*100,例:100908070b.Zoom=dif;/保存圖片的縮放比varp=pic.duplicateMovieClip(P+i,i*2);/復(fù)制圖片p._xscale=p._yscale=dif*100;/圖片縮放=遞增量*100,例:100108116124.p.setMask(b);/進(jìn)行遮罩_root.onMouseMove=function()for(vari=

36、1;i=Count;i+)varballs=thisB+i;balls._x=_xmouse;balls._y=_ymouse;/使每個鏡片都跟著鼠標(biāo)移動thisP+i._x=_xmouse-(_xmouse-pic._x)*balls.Zoom;thisP+i._y=_ymouse-(_ymouse-pic._y)*balls.Zoom;/調(diào)整每個復(fù)制出的圖片的位置/新的位置=鼠標(biāo)位置一(鼠標(biāo)位置一原圖pic的位置)*縮放比;教程到此結(jié)束QQ:147461195(FL基理大師)5。FL基礎(chǔ)理論大師貪吃蛇游戲按方向鍵開始思路:首先規(guī)定蛇的運動區(qū)域?qū)挾?stagew)和高度(stageh)增加鍵

37、盤偵聽,獲得鍵控代碼,如果該鍵與前一個鍵是反向的則不予改變初始化中,請注意:蛇頭、蛇身、食物的大小均為7象素每一次移動的步長(Move)均為8象素,以實現(xiàn)身體為一格一格的效果5吃到食物后,蛇身(body)長度增加5個單位,復(fù)制出5個身體履帶式前進(jìn):從尾部開始,后一個跟隨前一個的位置,最前面的跟隨蛇頭圖示:整體思路SnakeTree.jpg蛇頭、蛇身、食物的大小均為7象素,步長8象素SnakeTree.jpg步驟1:SnakeTree.jpg*繪制一個正方形做(代表蛇頭、蛇身、食物),尺寸隨意,保存為影片剪輯注冊點在左上(0,0),連接一導(dǎo)出一標(biāo)志符block*FPS為18左右步驟2:加入AS代

38、碼/=繪制出蛇活動的區(qū)域=varstagew:Number=447;varstageh:Number=255;beginFill(0 xeeeeee);moveTo(0,0);lineTo(stagew,0);lineTo(stagew,stageh);lineTo(0,stageh);endFill();/=創(chuàng)建一個文本框用于顯示信息=_root.createTextField(txt,-100,1,255,400,30);txt.text=貪吃蛇游戲按方向鍵開始;/=建立鍵盤偵聽=Key.addListener(txt);/使用一個已有的對象txt作偵聽,免去了新建偵聽對象了,節(jié)約了空間v

39、arNowKey:Number;/NowKey全局變量用于存儲當(dāng)前按下的鍵txt.onKeyDown=function()varc=Key.getCode()-37;/c=左鍵0上鍵1右鍵2下鍵3if(c4)&(Math.abs(NowKey-c)!=2)NowKey=c;/如果蛇正在向左移動那么他就不能向右移動,如果正向上移動就不能向下移動/左(0)和右(2)相差2,上(1)和下(3)相差2,所以如果他們相差2則該鍵無效;/=下面是一系列初始化=_root.attachMovie(block,head,-1,_width:7,_height:7);/首先創(chuàng)建蛇頭,它的大小為7像素varMove:Number=8;/每次移動的距離比蛇頭多出1像素,這樣就可以做出一格一格的效果了head._x=head._y=20*Move;/蛇頭的起點位置要(移動距離的倍數(shù))varbody:Number=0;/蛇身的長度初值varGameOver:B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論