Форум 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=98920)

Trilan 24.07.2007 19:36

Что-то не учел...
 
Я что-то не учел в коде или у меня тут какая-то ошибка? Посмотрите пожалуйста.

Код:

onClipEvent (load) {
        this._x = random(800);
        this._y = random(500);
}
onClipEvent (enterFrame) {
        time = 0;
        tellTarget ("/") {
                if (_root.player.hitTest(this)) {
                        this._x -= 100000;
                        _root.player.s += 5;
                        time = 1;
                        if (time>0) {
                                time += 1;
                        }
                        if (time == 100) {
                                time = 0;
                                _root.player.s -= 5;
                        }
                }
        }
}

У меня есть игрок, который при столкновении с этим объектом, должен розгоняться на время. Но при столкновении он только розгоняеться, но не на время, а почему-то навсегда.

iNils 24.07.2007 19:44

Плюс за название темы.

†‡Paladin‡† 24.07.2007 20:13

Каждый раз при смене кадра у тебя таймер обнуляется time = 1;

Trilan 24.07.2007 20:17

Простите, но не совсем понял. Можно поподробнее? А если вам не сложно, можете просто сказать, что я упустил или сделал не правильно? Ведь я уверен, что я просто пропустил какую-то строчку...

†‡Paladin‡† 24.07.2007 20:28

Беру свои слова по поводу time = 1 обратно. Код в топку. Для работы с временем используй setInterval. На клипах код сейчас не пишется. Пиши как минимум в кадрах, используя _root.onEnterFrame и прочее.

Trilan 24.07.2007 20:36

Послушайте, это все я прекрасно знаю и понимаю. Но все же, не скажите, где тут у меня ошибка? Пожалуйста, я вас очень прошу.

AleXNoD GD 25.07.2007 05:13

А что такое tellTarget? :D
Никогда не использовал за всё это долгое время.
По поводу ошибок - сложно сказать, потому что код воистину левый. Писать действия на каждый кадр лучше с помощью такой вот конструкции, вставленной ЖЕЛАТЕЛЬНО в ПЕРВЫЙ кадр:

_root.onEnterFrame = function(){
// код относительно кадра и никакого гемора с путями
}

CorC 25.07.2007 09:57

попробуйте воспользоваться функцией trace что б отловить, что не так.

Cкептик 25.07.2007 12:27

Или ctrl+shift+enter для отладки ролика. Подпишусь под советом "писать действия в кадр, нежели в movie clip".

Kikasso 25.07.2007 19:42

†‡Paladin‡†, а что вы свои слова обратно берете? Так и есть.

Код:

time = 1;
//...
if (time == 100) {
//...
}

Trilan, вопрос на засыпку, откуда 100 если только сказали что 1?


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

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