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 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误