Форум 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)
-   -   Глюк c random и _curentframe (http://www.flasher.ru/forum/showthread.php?t=99195)

minimalistic 31.07.2007 01:22

Глюк c random и _curentframe
 
Есть кнопка при нажатии на которую рандомно вычисляется число от -8 до +8, на которое должна поднятся или опустится шкала. Проблема в том, что при всей простоте работает это НЕ ВСЕГДА. Т.е.
Вешаешь random нa кнопку, и отправлляешь через gotoAndStop (_currentframe на + ... шкалу в которой от 1 до 100 кадра растягивается Shape. Проверяем и видим что периодически при клике по кнопке число вычисляется (не равно 0 - выяснил через trace) а шкала стоит на месте.
Известен ли кому-нибудь этот баг? Может есть идеи получше?

etc 31.07.2007 01:29

Код, пожалуйста.

minimalistic 31.07.2007 02:05

без проблем:
http://minimalistic.ru/downloads/bar2.fla
В данном исходнике немного не настроена шкала, но факт остается фактом _currentframe - ошибается

etc 31.07.2007 10:24

Я не смог определить, в каком именно месте проблема. Точнее, я не вижу саму проблему, что не так работает?

Вот, например, кусок кода:

Код:

stop();

bbb.onRelease = function() {
        var z:Number = (1 + Math.round(Math.random() * 15));
        if (p._currentframe == z) {
                p.gotoAndStop(1 + Math.round(Math.random() * 15));
                nextFrame();
        } else {
                p.gotoAndStop(z);
                _root.disp.bar.gotoAndStop(_currentframe + z);
                nextFrame();
        }
};

А чей _currentframe используется? В данном случае явно клипа game, только непонятно, зачем.

Но это совершенно точно баг в коде или логике кода, а никак не в плеере.

minimalistic 01.08.2007 04:17

Сейчас-то в чем проблема, не пойму... не могу зафиксировать кадр для того чтобы потом с него начал отсчет _currentframe.
вот исходник: http://minimalistic.ru/downloads/bar3.fla

etc 01.08.2007 10:19

Я же говорю, я не понимаю, в каком именно месте проблема. Там куча разбросанного кода по всему fla-шнику и понять, где проблема, нереально.

KPOT 01.08.2007 13:14

2 minimalistic ошибок в коде у тебя не мало на самом деле не смотря на то что вроде как запускаентся и всё работает.

начну с того как работает рандом. random(15) вернёт тебе все числа от 0 до 14 включительно, тоесть числа 15 ты там не получиш не когда. Это я заметил у тебя в обработчике нажатия на кнопку. Стоит заметить что 0 кадра не существует не где. Потому если хочеш попасть рандомно от 1 до 15 кадра пиши random(15) + 1

Далее, в том же обработчике идёт обращение к point он же "p" в первом кадре есть кнопка но поинт есть только со второго кадра, при первом нажатии он еще не проинициализирован и если ты его трейсанёш он будет undefined

lдалее, если ты хочеш убери везде скобки возле _currentframe, пиши просто .gotoAndStop(_currentframe + 5)

также если ты хотел сделать рандом от -8 до + 8 писал бы просто random(17) - 8; тоесть , если выпадет 0 у рандома будет -8, если выпадет 16 будет 8.

minimalistic 02.08.2007 14:32

Исправил, учитывая все замечания, весь код вынес на главную временную шкалу, но индикатор почему-то глючит (реагирует только на положительные значения и не хочет начинать отсчет с _currentframe)
http://minimalistic.ru/downloads/bar3.fla

Wolsh 02.08.2007 15:35

В первом кадре в коде поправь на
Код:

disp.bar.gotoAndStop(_currentframe + z + 35);

minimalistic 02.08.2007 15:59

Это поправил, но почему шкала-то показывает не правильно (например при значении z = она поднимается и как-то показывает хаотично)
В чем глюк?
обновил: http://minimalistic.ru/downloads/bar3.fla


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

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