求大神看下这段代码为啥不能达到效果

addTarget: function () {
        //var target = new cc.Sprite(res.Target_png);
        var target = new TargetSprite(res.Target_png);
        var size = cc.winSize;
        var targetHalfWidth = target.width / 2;
        var x = targetHalfWidth + (size.width - target.width) * cc.random0To1();
        target.attr({
            x: x,
            y: size.height+target.height/2
        });
        //var dorpAction = cc.MoveTo.create(2, cc.p(target.x, -30));
        var deltaX = cc.random0To1() * 500 * (Math.random()>0.5?1:-1);
        var deltaY = -(200 + 200 * cc.random0To1());

        //this.schedule(function () {
        //    target && (target.x + targetHalfWidth >= size.width || target.x - targetHalfWidth <=0) && (deltaX = -deltaX);
        //    var dorpAction = cc.moveBy(1, cc.p(deltaX, deltaY));
        //    target.runAction(dorpAction);
        //}, 1, 16 * 1024, 1);

        var dorpActionRepeatF = cc.RepeatForever.create(cc.Sequence.create(
            cc.moveBy(1, cc.p(deltaX, deltaY)),
            cc.CallFunc.create(function () {
                target && (target.x + targetHalfWidth >= size.width || target.x - targetHalfWidth <= 0) && (deltaX = -deltaY);
            }, this)
        ));
        target.runAction(dorpActionRepeatF);

        this.addChild(target, 5);
        this.targetSprites.push(target);
    }

```


为啥注释中的代码能生效,而下面的代码不生效?
我先写的注释中的,效果不是很理想,但起码碰到屏幕两侧还能变个方向,非注释中的根本就不能变方向
注释中的问题是碰到屏幕两侧的时候,那个距离不一定走完,所以不能马上回弹...我看到网上建议用非注释中的写法...虽然非注释中的写法也应该不能马上回弹