PDA

Просмотр полной версии : Объясните плз.


stormaster
21.01.2003, 17:15
Почему этот код работает:

onClipEvent (load) {
var x = 0;
this.onEnterFrame = count;
function count() {
x++;
if(x > 77) {
x = 0;
this.onEnterFrame = null;
} else {
counter.text = x;
}
}
setInterval(count, 7000);
}
---------------------------
а этот нет:

onClipEvent (load) {
x = 0;
function count() {
this.onEnterFrame = function(){
x++;
if(x > 77) {
x = 0;
this.onEnterFrame = null;
} else {
counter.text = x;
}
}
}
setInterval(count, 7000);
}

???????????????????????? :confused: :confused: :confused:

iLoveYou
21.01.2003, 19:52
Загадка: найдите 2 отличия? ;)

C2Plus
21.01.2003, 20:02
во втором случае, при вызове функции count не установлен указатель this. Напиши так:

function count() {
onEnterFrame = function(){

и все заработает.

C2Plus
21.01.2003, 20:06
дело в том, что в данном случае функция count, которую ты определил, не вызывается, а вызывается ее копия, созданная при вызове функции setInterval.