我想用超时来触发对象。问题是下面的代码只触发第一个对象。有人知道我怎么可以在不同的时间内开火吗?
function _tween_out(_objeto){
_objeto.play();
}
function _tween_in(_objeto){
_objeto.reverse();
}
myVar=[]
bk.on('mouseenter', function(evt) {
for (var j=0;j<iconos_bases.length;j++){
var mandar=iconos_bases[j].group.tween
myVar[j]=setTimeout(function(){_tween_out(mandar)},getRandomInt(1,100));
}
stage.draw();
});
我改变了代码。
function _tween_out(_objeto){
_objeto.play();
}
function _tween_in(_objeto){
_objeto.reverse();
}
myVar=[]
bk.on('mouseenter', function(evt) {
for (var j=0;j<iconos_bases.length;j++){
var mandar=iconos_bases[j].group.tween
var num=getRandomInt(1,600000);
console.log(num);
setTimeout(_tween_out(mandar),num);
}
stage.draw();
});
但所有超时都在同一时间。
答案 0 :(得分:1)
一件事:你在这里计算多少时间延迟?
// 600000 seems like a large number ??
var num=getRandomInt(1,600000);
无论如何......
演示: http://jsfiddle.net/m1erickson/CTRuq/
在setTimeout中,您无法使用_tween_out函数发送参数。
// This Won't Work !
setTimeout(_tween_out(mandar),num);
如果你想发送一个参数,你必须给setTimeout一个匿名函数:
setTimeout( function(){ _tween_out(mandar); }, num );