热门搜索:新年 节日 礼物 喜庆 人物 花纹 插画 PSD Web2.0 iPhone
维奇社区

你的位置:维奇素材网>学习教程>Flash>

繁體版
    AS2.0打造小球沿圆周运动动画
    来源:闪吧 | 作者:sxl001 | 发布时间:2007-12-04 | 栏目:Flash

  • 看效果:



    源文件下载:拖动小圆点沿圆移动.rar



    //=====  创建说明、输入文本 ==================
    this.createTextField("titleTxt", 1, 50, 10, 40, 16);
    this.createTextField("dynamicTxt", 2, 150, Stage.height-20, 40, 16);
    this.createTextField("input_txt", 3, 232, Stage.height-20, 40, 16);
    createTxt(titleTxt, di, "拖动小红球沿圆移动");
    createTxt(dynamicTxt, di, "输入圆的半径创建图形:");
    createTxt(input_txt, !di);
    function createTxt(target:TextField, di:Boolean, txt:String) {
    with (target) {
      if (di) {
       border = true;
       borderColor = 0x000000;
       textColor = 0xFF0000;
       restrict = "0-9";
       maxChars = 3;
       type = "input";
      } else {
       autoSize = "center";
       type = "dynamic";
       text = txt;
       selectable = false;
      }
    }
    }
    input_txt.onChanged = function() {
    var num:Number = Number(this.text);
    if (num<=Stage.height/2) {
      createImag(num);
      dynamicTxt.text = "输入圆的半径创建图形:";
    } else {
      dynamicTxt.text = "半径过大,重新输入";
    }
    };
    //===   与鼠标交互  ==================
    createImag(120);
    function createImag(r_num:Number) {
    // 画圆circle  |  r 半径  |   x0  y0  圆心坐标在舞台中央   
    var r:Number = r_num, x0:Number = Stage.width/2, y0:Number = Stage.height/2;
    this.createEmptyMovieClip("circle", 4);
    with (circle) {
      lineStyle(1, 0x000000, 100);
      moveTo(x0+r, y0);
    }
    for (var i:Number = 0; i<=360; i++) {
      var p:Number = i*Math.PI/180;
      circle.lineTo(x0+Math.cos(p)*r, y0+Math.sin(p)*r);
    }
    // 画小红球ball
    this.createEmptyMovieClip("mc", 5);
    mc.createEmptyMovieClip("ball", mc.getNextHighestDepth());
    with (mc.ball) {
      lineStyle(12, 0xFF0000, 100);
      moveTo(r, 0);
      lineTo(r+0.5, 0);
    }
    mc._x = x0;
    mc._y = y0;
    //  drag === mouseObject 事件
    var drag:Boolean = false;
    var mouseObject:Object = new Object();
    mouseObject.onMouseDown = function() {
      if (mc.ball.hitTest(_root._xmouse, _root._ymouse)) {
       drag = true;
      }
    };
    mouseObject.onMouseMove = function() {
      if (drag) {
       //  赋值
       var p1:Object = {x:_xmouse, y:_ymouse};
       var p2:Object = {x:mc._x, y:mc._y};
       mc._rotation = angle(p1, p2);
      }
      updateAfterEvent();
    };
    mouseObject.onMouseUp = function() {
      drag = false;
    };
    Mouse.addListener(mouseObject);
    //==  取得角度值
    function angle(p1:Object, p2:Object) {
      var xx:Number = p1.x-p2.x;
      var yy:Number = p1.y-p2.y;
      var r:Number = Math.atan2(yy, xx);
      return radianToAngle(r);
    }
    //==  弧度轮换为角度
    function radianToAngle(r:Number) {
      return r*180/Math.PI;
    }
    }


  • TAG:

上一篇:打造青蛙跳荷叶Flash小游戏   下一篇:Flash打造数字图片随鼠标环绕旋转效果

热门推荐

经典壁纸

    超酷设计壁纸 幻彩系列壁纸
    超宽屏或双屏幕精选壁纸系列二 超宽屏或双屏幕精选壁纸系列一
字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部