年年花不同,网页游戏广告特别多。一些物体随鼠标小范围移动的效果特别常见。还有一种是大对象移动(对象的宽或高大于舞台的情况)。这两种类型的移动的算法差不多。

a.先记录对象的初始坐标。(当对象添加到显示对象时,可以人为的设置对象的坐标)。

b.然后,计算对象移动的比例。

c.缓动改变对象的位置。

 

贴出效果和代码:

 

 

package  
{
	
	import flash.display.MovieClip;
	import flash.events.Event;
	
	public class Main extends MovieClip 
	{
		private var _sw:Number = stage.stageWidth;
		private var _sh:Number = stage.stageHeight;
		
		private var _gong:Gong;
		private var _originalX:Number;
		private var _originalY:Number;
		
		public function Main() 
		{
			_gong = new Gong();
			addChild(_gong);
			
			_gong.x = (_sw - _gong.width) * Math.random();
			_gong.y = (_sh - _gong.height) * Math.random();
			
			_originalX = _gong.x;
			_originalY = _gong.y;
			
			addEventListener(Event.ENTER_FRAME,enterHandler);
		}
		
		private function enterHandler(e:Event):void
		{
			var xScale:Number = (mouseX - _sw)/_sw;
			var yScale:Number = (mouseY - _sh)/_sh;
			_gong.x += ( xScale * (-100) + _originalX - _gong.x)/5;
			_gong.y += (yScale *(-50) + _originalY - _gong.y)/5;
		}
	}
	
}