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