8.Spring彈簧
spring非常類似于easing,但它的效果比easing更cool。一般的方法為定義一個目標(biāo)點,計算出到它的距離,加速度為距離與摩擦系數(shù)的積,同時還需要使用摩擦。
代碼: var targetx = 200; var targety = 150; fraction = .9; vx = 0; vy = 0; onEnterFrame = function () { if (!dragging) { //起始點與目標(biāo)地點的距離 dx = targetx-my_mc._x; dy = targety-my_mc._y; //加速度 vx += dx*.3; vy += dy*.3; //加入摩擦 vx *= fraction; vy *= fraction; my_mc._x += vx; my_mc._y += vy; } }; my_mc.onPress = function() { this.startDrag(); dragging = true; }; my_mc.onRelease=function() { this.stopDrag(); dragging = false; };
演示:
spring 與鼠標(biāo)相連
下面我們要對spring 進(jìn)行一下簡單的擴展,我們可以將目標(biāo)地點設(shè)為光標(biāo)的坐標(biāo)值,同時可以使用drawing api用畫線的方式將其相連起來。
代碼: var targetx = 200; var targety = 150; fraction = .9; vx = 0; vy = 0; onEnterFrame = function () { dx = _xmouse-my_mc._x; dy = _ymouse-my_mc._y; vx += dx*.3; vy += dy*.3; vx *= fraction; vy *= fraction; my_mc._x += vx; my_mc._y += vy; //畫線與mouse相連 clear(); lineStyle(1,0,100); moveTo(_xmouse,_ymouse); lineTo(my_mc._x,my_mc._y); };
演示:
現(xiàn)在我們在變通一下,小球在自然界中是有重力的。加上重力看看什么效果。一個小作業(yè),你試一下。
Spring 鏈
最后我們來一個稍微難一點的,是上面例子的一個擴展,如果你對上一個例子有了一定的理解,這個對你來說是不成問題的。上面的例子是跟隨著光標(biāo),如果是鏈的話。那么第二個小球就應(yīng)跟隨第一個小球,依次類推。如果這個你難做出來。相信這種類型的菜單對你來說就不成問題了。
代碼: fraction = .7; grav=20; my_mc.vx = 0; my_mc.vy = 0; my_mc1.vx = 0; my_mc1.vy = 0; my_mc2.vx = 0; my_mc2.vy = 0; onEnterFrame = function () { clear(); lineStyle(1, 0, 100); moveTo(_xmouse, _ymouse); spring(my_mc, _xmouse, _ymouse); spring(my_mc1, my_mc._x, my_mc._y); spring(my_mc2, my_mc1._x, my_mc1._y); }; function spring(mc, x, y) { dx = x-mc._x; dy = y-mc._y; mc.vx += dx*.3; mc.vy += dy*.3; mc.vy += grav; mc.vx *= fraction; mc.vy *= fraction; mc._x += mc.vx; mc._y += mc.vy; lineTo(mc._x, mc._y); }
演示:
總結(jié):上面的教程看起來都是一些簡單的東西,但它確確實實是一些好的框架,你可無限的發(fā)揮你的想象和創(chuàng)意,只要在這個框架之中添加一些元素或是代碼。寫這篇教程的目的主要是針對初級和中級的用戶。目的是使大家意識到其實許多表面看起來復(fù)雜的東西,實際上都隱藏著相對復(fù)雜的簡單,前提條件是你的思路一定要清晰。最后。仍要引用keith peters話。不要直接下載源文件或是直接粘貼代碼。最好的方式是理解。才能發(fā)揮自如。如果你想知道更多更詳細(xì)的內(nèi)容。請訪問keith peters的網(wǎng)站www.bit-101.com.或是去預(yù)定keith peters的新書making things move…相信對于desinger來說一定是一本好書。
出處:WebStudio
責(zé)任編輯:qhwa
上一頁 拖動與拋、緩沖 下一頁
◎進(jìn)入論壇Flash專欄版塊參加討論
|