Open
Description
version:createjs-2015.11.26.min.js
createjs.Ticker.on('tick', function(event) {
var alpha, red, redNum, beginX, duration, radius, toX;
// if (event.paused) {
// return;
// }
redNum = reds.numChildren;
if (redNum === 0 || redNum < settings.red.max) {
console.log('-----tick--------');
radius = 160
beginX = Math.floor(Math.random() * stageWidth);
// toX: -radius or stageWidth + radius
// toX = beginX < stageWidth / 2 ? stageWidth : 0;
if (Math.random() < 0.3) {
toX = beginX < stageWidth / 2 ? stageWidth : 0;
} else if (Math.random() < 0.7) {
toX = Math.random() * stageWidth - radius
} else if (Math.random()< 1) {
toX = Math.random() * (stageWidth/2) - radius;
}
// console.log('----toX-----:', toX)
// duration: 3s ~ 5s
duration = Math.floor(Math.random() * 2001) + 2000;
// 奖品概率
const n1 = Math.round(Math.random()*100)
if (!event.paused) {
console.log('----1--------')
if ( n1 < 90) {
if (n1 < 10) {
red = new createjs.Bitmap('./img/red/red1.png')
} else if (n1 < 30) {
red = new createjs.Bitmap('./img/red/red2.png')
} else if (n1 < 40) {
red = new createjs.Bitmap('./img/red/red3.png')
} else if (n1 < 50) {
red = new createjs.Bitmap('./img/red/red4.png')
} else if (n1 < 60) {
red = new createjs.Bitmap('./img/red/red5.png')
} else {
red = new createjs.Bitmap('./img/red/red6.png')
}
} else {
// 小概率波奇豆
red = new createjs.Bitmap('./img/red/bean.png')
}
red.x = beginX;
red.y = -radius / 2;
reds.addChild(red);
createjs.Tween.get(red).to({
x: toX
}, duration);
createjs.Tween.get(red).to({
y: Math.random() * (stageHeight + 2 * radius)
}, duration, createjs.Ease.sineOut);
createjs.Tween.get(red).wait(duration).call(function() {
return reds.removeChild(red);
});
red.addEventListener('click', (evt) => {
if (!evt.paused) {
createjs.Ticker.setPaused(true);
createjs.Ticker.addEventListener('tick', stage);
console.log('----evt-----:', evt)
const stageX = evt.stageX
const stageY = evt.stageY
const gift = new createjs.Bitmap('./img/red/gift1.png')
gift.x = stageX
gift.y = stageY
reds.removeChild(evt.target)
reds.addChild(gift)
createjs.Tween.get(gift).to({
x: toX
}, duration);
createjs.Tween.get(gift).to({
y: Math.random() * (stageHeight + 2 * radius)
}, duration);
createjs.Tween.get(gift).wait(duration).call(function() {
return reds.removeChild(gift);
});
setTimeout(() => {
// createjs.Ticker.setPaused(false);
}, 2000);
console.log('-----click-----:', evt.target)
}
})
} else {
console.log('----2--------')
if (stage && stage.children) {
var i, l = stage.children.length;
for (i = 0; i < l; i++) {
var child = stage.children[i];
console.log('----child------:', child)
if ("stop" in child)
child.stop();
}
}
}
}
});
createjs.Ticker.framerate = 60;
createjs.Ticker.addEventListener('tick', stage);