PDA

Просмотр полной версии : Перестаёт работать функция!


flazher
04.10.2008, 11:41
Проблема в следующем:
У меня есть код
function buble() {
randomic = random(100);
duplicateMovieClip("bull","ball" + i,this.getNextHighestDepth);
i++;
setProperty("ball" + i,_x,random(500) + 25);
setProperty("ball" + i,_y,random(350) + 25);
setProperty("ball" + i,_xscale,randomic);
setProperty("ball" + i,_yscale,randomic);
}
onMouseDown = function() {
buble();
}
Всё работает до тех пор, пока я не приписываю
var i = 0;
function buble() {
randomic = random(100);
duplicateMovieClip("bull" + i,"ball" + i,this.getNextHighestDepth);
i++;
setProperty("ball" + i,_x,random(500) + 25);
setProperty("ball" + i,_y,random(350) + 25);
setProperty("ball" + i,_xscale,randomic);
setProperty("ball" + i,_yscale,randomic);
}
onMouseDown = function() {
buble();
}
В чём дело? Почему var i убивает мою функцию? :(

Fernando Costa
04.10.2008, 13:16
а мувик bull0 есть на сцене?

darksranger
04.10.2008, 13:28
var i = 0;
function buble() {
randomic = random(100);
var Newball:MovieClip = bull.duplicateMovieClip("ball" + i,this.getNextHighestDepth);
i++;
setProperty("ball" + i,_x,random(500) + 25);
setProperty("ball" + i,_y,random(350) + 25);
setProperty("ball" + i,_xscale,randomic);
setProperty("ball" + i,_yscale,randomic); ??? пытаетесь применить свойство к еще не сущетсвующему ball, скорей код должен быть такой

/*
setProperty(Newball,_y,random(350) + 25);
setProperty(Newball,_xscale,randomic);
setProperty(Newball,_yscale,randomic)

*/
}
onMouseDown = function() {
buble();
}

это если вам нужно единственный bull дублировать, если же каждый bull, то скорей всего bull0 отсутвует на сцене поставте проверку на отсутсвующий bull

var i = 0;
function buble() {
if (bull+i!=undefined) {

randomic = random(100);
var NewBall:MovieClip = this["bull"+i].duplicateMovieClip("ball" + i,this.getNextHighestDepth);
i++;
setProperty(NewBall,_x,random(500) + 25);
setProperty(NewBall,_y,random(350) + 25);
setProperty(NewBall,_xscale,randomic);
setProperty(NewBall,_yscale,randomic);
}else{
trace("нет такого bull")
}
}
onMouseDown = function() {
buble();
}

dimarik
05.10.2008, 03:05
1. А i в первом случае где берёте? =) Наверняка оно undefined.
2. getNextHighestDepth должно быть вызвано в этом контексте, а не быть ссылкой на метод. Правильнее было бы написать this.getNextHighestDepth()
3. Не существенно, но вроде опечатка "bull".

darksranger
05.10.2008, 08:41
:) я так же выше и ответил :)

flazher
05.10.2008, 08:46
Ладно, всем спасибо.