JS İşlev Yürütme ile ilgili bir sorunum var. Bu kod:JS işlev yürütme ile ilgili sorun
function CaricaImmagini() {
//First for loop
for (i = 0; i < tiles.length; i++)
{
tileGraphics[i] = new Image();
tileGraphics[i].src = tiles[i];
tileGraphics[i].onload = function()
{
img_loaded++;
pda.SetPerc(Math.round((70/(tiles.length + img_nec.length))*img_loaded));
pda.CounterFill();
}
}
//Second for loop
for (i=0; i < img_nec.length; i++)
{
imgs[i] = new Image();
imgs[i].src = img_nec[i];
imgs[i].onload = function()
{
img_loaded++;
pda.SetPerc(Math.round((70/(tiles.length + img_nec.length))*img_loaded));
pda.CounterFill();
}
}
//Change % in Canvas
pda.SetPerc(75);
pda.CounterFill();
}
sorun comment 'Canvas Değişim%' başlığı altında fonksiyonlar döngüler için önce çalıştırılan olmasıdır. Tuvalde ilk% 75'i görüyorum (setperc işlevi% yükleniyor), ve bundan sonra bu Calc [Math.round ((70/(tiles.length + img_nec.length)) * çıkışını görüyorum. Img_loaded)]. Nasıl çözebilirim?
Selamlar, 50Special
onload
olaylar daha sonra tetiklenir ve ancak o zaman tanımladığınız geri aramalar çalıştırılacaktır Bunun nedeni
Döngüler için, bahsettiğiniz yorumdan önce yürütülür, ancak döngüler içinde, eşzamansız geri aramalar uygularsınız ve resimler yüklendiğinde ve işlevlerin senkronize işlenmesinden sonra kesinlikle yürütülürler. –
Sonuçların nasıl görünmesini istersiniz? Tüm bu görüntüleri yüklerken 'setPerc()' ın ne yapmasını istiyorsunuz? Mevcut matematiğinize dayanarak, 0'dan 100'e gitmek istemediğinize benziyor. Bu görüntüler yüklenirken başlangıç ve son değerin ne olmasını istiyorsunuz? – jfriend00