`

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

阅读更多
实现这效果其实比较简单,主要是思路~!


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);
                        }
                }
        }
}

分享到:
评论
2 楼 老顽童203 2017-03-25  
字体
1 楼 liuhello 2012-03-27  
选择您需要装饰的文字, 按上列按钮即可添加上相应的标签} 
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 = 
        { 
                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); 
                        } 
                } 
        } 

相关推荐

Global site tag (gtag.js) - Google Analytics