在js中引入movieClip后 button点击事件里的for循环失效,请大神帮帮忙解答一下,谢谢!

qq_28092057 2015-05-28 09:14:37

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>hello</title>
<script src="easeljs-0.8.0.min.js"></script>
<script src="movieclip-0.8.0.min.js"></script>
<script src="tweenjs-0.6.0.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<canvas id="mycanvas" width="400px" height="400px" style="background-color: blueviolet"></canvas>
<button id="btn1">左</button>

<button id="btn2">右</button>
</body>
</html>




/**
* 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);
}
...全文
374 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧