qq_28092057 2015-05-29 10:46 采纳率: 33.3%
浏览 1752

在js中引入movieClip后 button点击事件里的for循环失效!

/**
 * Created by Administrator on 2015/5/27.
 */
var stage,image,btn1,btn2;
var image_x = 200;
var image_y = 20;
var step_x;
var step_y;
var arr_x_r = [];
var arr_x_l = [];
var arr_y = [];
var arry = [];
window.onload = function(){
    stage = new createjs.Stage("mycanvas");
    btn1 = document.getElementById("btn1");
    btn2 = document.getElementById("btn2");
    image = new createjs.Shape();
    image.graphics.beginFill("#123F56").drawRect(image_x,image_y,50,50);
    stage.addChild(image);

    var mc = new createjs.MovieClip(null,0,true,{start:0});
    stage.addChild(mc);

    for(var i = 0;i<5;i++) {
        arry[i] = new createjs.Shape();
        step_x = Math.random()*(300-50)+50;
        step_y = 70*(i+1);
        arry[i].graphics.beginFill("#12fF56").drawRect(step_x, step_y, 100, 20);
        arr_x_r[i] = step_x+100;
        arr_x_l[i] = step_x-50;
        arr_y[i] = step_y;
        stage.addChild(arry[i]);
    }


    var n = 0;
    var l = 0;

    for (var i = n; i < 5; i++) {
        if (image_x < arr_x_r[i]&&image_x>arr_x_l[i]) {
            break;
        }else{
            image.y += 70;
            n += 1;
        }
    }


    for(var i = 0; i < 5; i++){
        mc.timeline.addTween(createjs.Tween.get(arry[i]).to({y:0},0).to({y:-100},100));
    }
    mc.timeline.addTween(createjs.Tween.get(image).to({y:0},0).to({y:-100},100));
    mc.gotoAndPlay("start");


    btn2.onclick = function() {
        image.x += 10;
        image_x += 10;

        for (var i = n; i < 5; i++) {
            if (image_x < arr_x_r[i]) {
                break;
            }else{
                image.y += 70;
                n += 1;
            }
        }
        if(image_x>350){
            image.x -= 10;
            image_x -= 10;
        }
        if(image_x==350&&image.y==350){
            alert("Congratulate to you!!!")
        }

    }

    btn1.onclick = function(){
        image.x-=10;
        image_x-=10;

        for(var i = n; i < 5; i++){
            if(image_x>arr_x_l[i]){
                break;
            }else{
                image.y += 70;
                n += 1;
            }
        }
        if(image_x<0){
            image.x += 10;
            image_x += 10;
        }
    }

    createjs.Ticker.setFPS(20);
    createjs.Ticker.addEventListener("tick",stage);
}
  • 写回答

1条回答 默认 最新

  • SamHwang① 2015-12-17 09:51
    关注

    建议你,在你的for循环外alert(n);是不是等于5.看到有个地方n=+1了

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)