Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Перестаёт работать функция! (http://www.flasher.ru/forum/showthread.php?t=116578)

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

Ладно, всем спасибо.


Часовой пояс GMT +4, время: 16:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.