線性垂直運(yùn)動
在 Wave1.as 文件中,加入了線性垂直運(yùn)動,只是為我們制作動畫增加一些靈感。以下是這個文件的代碼:
package { import flash.display.Sprite; import flash.events.Event; public class Wave1 extends Sprite { private var ball:Ball; private var angle:Number = 0; private var centerY:Number = 200; private var range:Number = 50; private var xspeed:Number = 1; private var yspeed:Number = .05; public function Wave1() { init(); } private function init():void { ball = new Ball(); addChild(ball); ball.x = 0; addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(event:Event):void { ball.x += xspeed; ball.y = centerY + Math.sin(angle) * range; angle += yspeed; } } }
心跳運(yùn)動
使用正弦值作為一種工具,不僅僅只用于控制物理位置。在 Pulse.as 文件中,使用一個值來影響小球的縮放,實(shí)現(xiàn)一個心跳的效果,代碼如下:
package { import flash.display.Sprite; import flash.events.Event; public class Pulse extends Sprite { private var ball:Ball; private var angle:Number = 0; private var centerScale:Number = 1; private var range:Number = .5; private var speed:Number = .1; public function Pulse() { init(); } private function init():void { ball = new Ball(); addChild(ball); ball.x = stage.stageWidth / 2; ball.y = stage.stageHeight / 2; addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(event:Event):void { ball.scaleX = ball.scaleY = centerScale +
Math.sin(angle) * range; angle += speed; } } }
原理是一樣的,centerScale表示100%的縮放比, range 表示范圍, speed 表示速度。不僅如此,正弦波還在 alpha,rotation 等屬性中應(yīng)用。
雙角波形
再給大家一種思想:設(shè)置兩套數(shù)值 angle1 和 angle2,為它們各自增加一個中心點(diǎn)(center)和速度(speed)值。用一個正弦波作為一種屬性,另一個正弦波作為另一種屬性,比如位置或縮放。我不敢保證能夠得到什么有用的結(jié)果,但這樣做的話,就等于讓這些函數(shù)自由發(fā)揮作用。
從 Random.as 文檔類開始,這里面擁有兩個角度(angle),兩個速度(speed)和兩個中心點(diǎn)(center),將其中一個角(angle1)作為小球的X坐標(biāo),另一個角(angle2)作為Y坐標(biāo)。運(yùn)行程序時,就像只蟲子在房間里飛,雖然這些數(shù)字都是預(yù)先定義好的,但結(jié)果卻沒有什么規(guī)律可言。代碼如下:
package { import flash.display.Sprite; import flash.events.Event; public class Random extends Sprite { private var ball:Ball; private var angleX:Number = 0; private var angleY:Number = 0; private var centerX:Number = 200; private var centerY:Number = 200; private var range:Number = 50; private var xspeed:Number = .07; private var yspeed:Number = .11; public function Random() { init(); } private function init():void { ball = new Ball(); addChild(ball); ball.x = 0; addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(event:Event):void { ball.x = centerX + Math.sin(angleX) * range; ball.y = centerY + Math.sin(angleY) * range; angleX += xspeed; angleY += yspeed; } } }
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 三角學(xué)應(yīng)用 [6] 下一頁 三角學(xué)應(yīng)用 [8]
◎進(jìn)入論壇RIA設(shè)計與應(yīng)用版塊參加討論
|