在函数内部时代码不起作用

时间:2020-06-02 14:01:09

标签: javascript jquery

我的代码在函数外使用时效果很好。但是不确定当我只包装一个函数时会出什么问题。

这是我的工作代码:想法是沿方形路径移动铅笔。在工作代码中,它遵循方形路径,但是当我包装函数时,它一直沿直线进行。

var direction ='right';
var angle = 0;
var sum_angle = 0;

    for (var count = 0; count < 5; count++) {
      if(--window.LoopTrap == 0) throw "Infinite loop.";
      move_draw_Player(direction, 100);
      var new_angle=90;
      $('#player').animate({rotate: '90deg'}, 100);
      var angle=angle +new_angle;
      sum_angle =sum_angle + angle;
    }

    function move_draw_Player(directionStr, amount) {
                directionStr =angle;
                  var x = Math.sin(angle*Math.PI/-180) * amount;
                  var y = Math.cos(angle*Math.PI/-180) * amount;
                  z= amount/100;
           $('#pencil').animate({'left': '-='+x+'px', 'top': '-='+y+'px'}, z*350, 'linear', function() {
            //window.counter = window.counter +2;
            pen.moveTo((pencil.offset().left - cw.offset().left),(pencil.offset().top+ pencil.height() -ac.offset().top)); 
      });

但是当我在其周围包装一个函数时,它将无法正常工作。可能出什么问题了?

var direction ='right';
var angle = 0;
var sum_angle = 0;
   function Draw_Square() {
            for (var count = 0; count < 5; count++) {
              if(--window.LoopTrap == 0) throw "Infinite loop.";
              move_draw_Player(direction, 100);
              var new_angle=90;
              $('#player').animate({rotate: '90deg'}, 100);
              var angle=angle +new_angle;
              sum_angle =sum_angle + angle;
            }

            }

            function move_draw_Player(directionStr, amount) {


                        directionStr =angle;
                          var x = Math.sin(angle*Math.PI/-180) * amount;
                          var y = Math.cos(angle*Math.PI/-180) * amount;
                          z= amount/100;
                   $('#pencil').animate({'left': '-='+x+'px', 'top': '-='+y+'px'}, z*350, 'linear', function() {
                    //window.counter = window.counter +2;
                    pen.moveTo((pencil.offset().left - cw.offset().left),(pencil.offset().top+ pencil.height() -ac.offset().top));
              });
    }

    //}

    Draw_Square();

0 个答案:

没有答案