![]() |
Глюк c random и _curentframe
Есть кнопка при нажатии на которую рандомно вычисляется число от -8 до +8, на которое должна поднятся или опустится шкала. Проблема в том, что при всей простоте работает это НЕ ВСЕГДА. Т.е.
Вешаешь random нa кнопку, и отправлляешь через gotoAndStop (_currentframe на + ... шкалу в которой от 1 до 100 кадра растягивается Shape. Проверяем и видим что периодически при клике по кнопке число вычисляется (не равно 0 - выяснил через trace) а шкала стоит на месте. Известен ли кому-нибудь этот баг? Может есть идеи получше? |
Код, пожалуйста.
|
без проблем:
http://minimalistic.ru/downloads/bar2.fla В данном исходнике немного не настроена шкала, но факт остается фактом _currentframe - ошибается |
Я не смог определить, в каком именно месте проблема. Точнее, я не вижу саму проблему, что не так работает?
Вот, например, кусок кода: Код:
stop();Но это совершенно точно баг в коде или логике кода, а никак не в плеере. |
Сейчас-то в чем проблема, не пойму... не могу зафиксировать кадр для того чтобы потом с него начал отсчет _currentframe.
вот исходник: http://minimalistic.ru/downloads/bar3.fla |
Я же говорю, я не понимаю, в каком именно месте проблема. Там куча разбросанного кода по всему fla-шнику и понять, где проблема, нереально.
|
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. |
Исправил, учитывая все замечания, весь код вынес на главную временную шкалу, но индикатор почему-то глючит (реагирует только на положительные значения и не хочет начинать отсчет с _currentframe)
http://minimalistic.ru/downloads/bar3.fla |
В первом кадре в коде поправь на
Код:
disp.bar.gotoAndStop(_currentframe + z + 35); |
Это поправил, но почему шкала-то показывает не правильно (например при значении 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.