zoukankan      html  css  js  c++  java
  • AS3随鼠标移动的蜘蛛

     1 package antCodes
     2 {
     3     import flash.display.Sprite;
     4     import flash.utils.getDefinitionByName;
     5     import flash.display.MovieClip;
     6     import flash.events.Event;
     7     import flash.events.MouseEvent;
     8     
     9     /**
    10      * ...
    11      * @getDefinitionByName(name:String):Object
    12      *  这是一个接口,返回name参数指定的类对象的引用
    13      * @author Dong
    14      */
    15     public class SampleSpider extends Sprite
    16     {
    17         private var _Spider:Class;//蜘蛛对象
    18         private var spider:MovieClip;
    19         private var line:Sprite;//蜘蛛爬行的线
    20         private var speed:Number = 10;//爬行速度
    21         
    22         public function SampleSpider(){
    23             initView();
    24             this.addEventListener(Event.ENTER_FRAME, drawLine);
    25             this.addEventListener(Event.ENTER_FRAME, moveSpider);
    26             //鼠标点击后,停止侦听ENTER_FRAME事件
    27             this.stage.addEventListener(MouseEvent.CLICK, stopAnimation);
    28         }        
    29         private function initView():void {
    30             //获取库元件自动绑定的类
    31             _Spider =getDefinitionByName("Spider_mc") as Class;
    32             //生成线的容器
    33             line = new Sprite();
    34             addChild(line);
    35             //实例化显示对象
    36             spider = new _Spider();
    37             addChild(spider);
    38             spider.cacheAsBitmap = true; //打开位图缓存,提高执行效率
    39             
    40         }
    41         //在每帧中,重新绘制蛛丝
    42         private function drawLine(evt:Event):void {
    43             line.graphics.clear();        //清空
    44             line.graphics.moveTo(0, 0);        
    45             line.graphics.lineStyle(1, 0xffffff);        
    46             line.graphics.lineTo(spider.x, spider.y);            
    47         }
    48         //在每帧中,移动和旋转蜘蛛
    49         private function moveSpider(evt:Event):void {
    50             var dx:Number = this.mouseX - spider.x;
    51             var dy:Number = this.mouseY - spider.y;
    52             //Math.atan():Number
    53             //以弧度为单位计算并返回角度值,该角度的正切值已在参数 val 中指定。
    54             var p:Number  =Math.atan(dy/dx)*180/Math.PI;//计算弧度
    55             var rotateAngle:Number = (dx>0) ? (90+p):(270+p);//旋转角度
    56             spider.x += dx/speed;
    57             spider.rotation = rotateAngle;
    58             spider.y += dy/speed;
    59         }
    60         private function stopAnimation(evt:MouseEvent):void {
    61             this.removeEventListener(Event.ENTER_FRAME, drawLine);
    62             this.removeEventListener(Event.ENTER_FRAME, moveSpider);
    63         }
    64     }
    65 }

  • 相关阅读:
    资源列表
    资源列表
    编程语言资源列表
    PyTorch简介
    Keras构建回归神经网络
    Keras简介
    Tensorflow之RNN,LSTM
    Tensorflow之CNN
    Tensorflow之dropout
    Tensorflow做分类
  • 原文地址:https://www.cnblogs.com/finger/p/2439689.html
Copyright © 2011-2022 走看看