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