6.拖動(dòng)與拋
拖動(dòng)與拋實(shí)際是與上面的例子的結(jié)合應(yīng)用,這里只是說明如何與上面相結(jié)合使用。在本例中我們想要在拖動(dòng)小球的小球停止運(yùn)動(dòng),松開或拋出時(shí)小球繼續(xù)運(yùn)動(dòng),在制作之前,我們先看一下基礎(chǔ)知識(shí): 要點(diǎn):拖動(dòng)我們使用方法startDrag(),同時(shí)要禁止小球運(yùn)動(dòng),當(dāng)拖動(dòng)時(shí)要注意小球的運(yùn)動(dòng)速度變化,松開時(shí),使用方法stopDrag(),同時(shí)重置速度,然后小球繼續(xù)運(yùn)動(dòng)。
代碼: top=0; left=0; right=400; bottom=300; garv=.5; vx = 10; vy = 10; onEnterFrame = function () { //設(shè)定如果沒有拖動(dòng)則小球正常進(jìn)行帶有能量損失的彈性運(yùn)動(dòng) if(!dragging){ vy+=garv; my_mc._x += vx; my_mc._y += vy; if(my_mc._x+my_mc._width/2>right){ my_mc._x=right-my_mc._width/2; vx*=-0.8; } if(my_mc._x-my_mc._width/2<left){ my_mc._x=left+my_mc._width/2; vx*=-0.8; } if(my_mc._y-my_mc._height/2<top){ my_mc._y=top+my_mc._height/2; vy*=-0.8; } if(my_mc._y+my_mc._height/2>bottom){ my_mc._y=bottom-my_mc._height/2; vy*=-0.8; } //如果有拖動(dòng),則此時(shí)速度發(fā)生了變化,需要記錄下最后my_mc的位置和當(dāng)前my_mc的位置,兩者的差為當(dāng)前的速度。 }else{ vx=my_mc._x-oldx; vy=my_mc._y-oldy; oldx=my_mc._x; oldy=my_mc._y; } }; my_mc.onPress=function(){ this.startDrag(); dragging=true; } my_mc.onRelease=function(){ this.stopDrag(); dragging=false; } 演示:
7.easing緩動(dòng) 簡(jiǎn)單的easing方式,需要我們選擇目的地,然后以摩擦的形式達(dá)到目的點(diǎn)。這就是easing.如果想要更復(fù)雜的easing方式,可以參看www.robertpenner.com,當(dāng)然你也可以使用現(xiàn)在網(wǎng)站各種各樣的類;蚴鞘褂胢m自帶的transition類或是tween類。
代碼: targetx = 200; targety = 150; onEnterFrame = function () { dx=targetx-my_mc._x; dy=targety-my_mc._y; my_mc._x+=dx*.3; my_mc._y+=dy*.3; }; 演示:
出處:WebStudio
責(zé)任編輯:qhwa
上一頁 彈性、動(dòng)量損失和摩擦力 下一頁 Spring 彈簧
◎進(jìn)入論壇Flash專欄版塊參加討論
|