Итак, я разработал отличный способ создать пиксельный эффект стирания, с фрагментами видеороликов пикселей, вложенными в строки. Я создал цикл, который проходит через каждую строку, а затем еще один цикл внутри этого цикла для пикселей в каждой строке. Затем я использую случайное число от 1 до 0 для задержки перед альфа-увеличением пикселя. Я использовал Greensock для подростка, и он прекрасно работает.
Одна проблема, я не могу остановить цикл for для строк, и каждая строка появляется сразу. Тем не менее, пиксели смещены, и это хороший эффект, но я хочу, чтобы он двигался слева направо. Так что мой код выглядит следующим образом: (Кстати, AS3 имеет setTimeout, и он отлично работает)
function stripeWipeUp(stripe:MovieClip):void {
var total = stripe.numChildren;
for (var i:int = 0; i<total; i++) { // the rows
trace(i);
setTimeout(function() {
trace("setTimeout: "+i);
var row:MovieClip = stripe.getChildAt(i) as MovieClip;
var pixTotal = row.numChildren;
for (var j:int = 0; j<pixTotal; j++) { the pixels
var pix:MovieClip = row.getChildAt(j) as MovieClip;
var num = Math.floor(Math.random()*100)/100; // the delay
pixUp(pix, num); // my greensock function
}
}, 500);
}
}
Что происходит с setTimeout, так это то, что цикл «i» попадает в каждую строку (их 27) до того, как закончится один setTimeout. Таким образом, он не работает должным образом - следующий цикл не должен выполняться, пока setTimeout не закончится. Любая идея, как этого добиться, чтобы каждая строка остановилась примерно на 500 мс? Спасибо.