| 
 线性垂直运动 
在 Wave1.as 文件中,加入了线性垂直运动,只是为我们制作动画增加一些灵感。以下是这个文件的代码: 
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;   }  } } 
心跳运动 
使用正弦值作为一种工具,不仅仅只用于控制物理位置。在 Pulse.as 文件中,使用一个值来影响小球的缩放,实现一个心跳的效果,代码如下: 
  
 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 等属性中应用。 
双角波形 
再给大家一种思想:设置两套数值 angle1 和 angle2,为它们各自增加一个中心点(center)和速度(speed)值。用一个正弦波作为一种属性,另一个正弦波作为另一种属性,比如位置或缩放。我不敢保证能够得到什么有用的结果,但这样做的话,就等于让这些函数自由发挥作用。 
从 Random.as 文档类开始,这里面拥有两个角度(angle),两个速度(speed)和两个中心点(center),将其中一个角(angle1)作为小球的X坐标,另一个角(angle2)作为Y坐标。运行程序时,就像只虫子在房间里飞,虽然这些数字都是预先定义好的,但结果却没有什么规律可言。代码如下: 
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;   }  } } 
出处:蓝色理想
 
责任编辑:bluehearts 
上一页 三角学应用 [6] 下一页 三角学应用 [8] 
◎进入论坛RIA设计与应用版块参加讨论
	       |