读书人

果品忍者鼠标跟随特效制作[转载]

发布时间: 2012-06-27 14:20:09 作者: rapoo

水果忍者鼠标跟随特效制作[转载]
实现这效果其实比较简单,主要是思路~!


package  {        import flash.display.Sprite;        import flash.events.MouseEvent;        import flash.events.Event;        import flash.filters.GlowFilter;                /**         * ...         * @author Xing         */        public class Main extends Sprite         {                private var _cacheX:int;                private var _cacheY:int;                private var _isDown:Boolean;                private var _scene:Sprite;                public function Main()                 {                        _scene = new Sprite();                        this.addChild(_scene);                        _scene.filters = [new GlowFilter(0x00CCFF, 1, 10, 10, 2, 1, false, false)];                                                stage.addEventListener(MouseEvent.MOUSE_DOWN, downHandler);                        stage.addEventListener(MouseEvent.MOUSE_UP, upHandler);                        this.addEventListener(Event.ENTER_FRAME, enterFrame);                }                private function downHandler(e:MouseEvent):void                {                        _cacheX = mouseX;                        _cacheY = mouseY;                        _isDown = true;                }                private function upHandler(e:MouseEvent):void                {                        _isDown = false;                }                private function enterFrame(e:Event):void                {                        for each (var l:Line in Line.sets)                         {                                l.update();                        }                        update();                }                private function update():void                {                        if (!_isDown) return;                        var line:Line = new Line(_cacheX, _cacheY, mouseX, mouseY);                        _scene.addChild(line);                        _cacheX = mouseX;                        _cacheY = mouseY;                }                        }}import flash.display.Sprite;class Line extends Sprite{        static public var sets:Array = [];                public var sX:int;        public var sY:int;        public var eX:int;        public var eY:int;        public var linesize:Number;        public function Line($sX:int, $sY:int, $eX:int, $eY:int, $linesize:Number = 8)        {                sets.push(this);                sX = $sX;                sY = $sY;                eX = $eX;                eY = $eY;                linesize = $linesize;                draw();        }        private function draw():void        {                graphics.clear();                graphics.lineStyle(linesize, 0xFFFFFF);                graphics.moveTo(sX, sY);                graphics.lineTo(eX, eY);        }        public function update():void        {                draw();                linesize -= 1;                if (linesize < 1)                {                        clear();                }        }        private function clear()        {                graphics.clear();                for (var i:String in sets)                 {                        var l:Line = sets[i] as Line;                        if (l == this)                        {                                sets.splice(i, 1);                                parent.removeChild(this);                        }                }        }}


{
sets.push(this);
sX = $sX;
sY = $sY;
eX = $eX;
eY = $eY;
linesize = $linesize;
draw();
}
private function draw():void
{
graphics.clear();
graphics.lineStyle(linesize, 0xFFFFFF);
graphics.moveTo(sX, sY);
graphics.lineTo(eX, eY);
}
public function update():void
{
draw();
linesize -= 1;
if (linesize < 1)
{
clear();
}
}
private function clear()
{
graphics.clear();
for (var i:String in sets)
{
var l:Line = sets[i] as Line;
if (l == this)
{
sets.splice(i, 1);
parent.removeChild(this);
}
}
}
}

读书人网 >Web前端

热点推荐