![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 29
|
Есть скрипт:
function moveDown(movieRef, align) {
if (movieRef._y != align) {
movieRef._y = movieRef._y+1;
updateAfterEvent();
} else {
break;
}
}
function moveUp(movieRef, align) {
if (movieRef._y != align) {
movieRef._y = movieRef._y-1;
updateAfterEvent();
} else {
break;
}
}
i = 1;
k = 1;
spring.onPress = function() {
i = i+1;
k = Math.floor(i/2);
if (i/k == 2) {
clearInterval(sumInterval);
clearInterval(autInterval);
autInterval = setInterval(moveDown, 1, autumn, 170);
sumInterval = setInterval(moveDown, 1, summer, 150);
trace("раз");
}
if (i/k != 2) {
clearInterval(sumInterval);
clearInterval(autInterval);
autInterval = setInterval(moveUp, 1, autumn, 40);
sumInterval = setInterval(moveUp, 1, summer, 20);
trace("два");
}
};
Нажав по кнопке ВЕСНА 2007 ЛЕТО и ОСЕНЬ поедут вниз без остановки. Надо сразу нажать снова на ВЕСНУ - ЛЕТО и ОСЕНЬ поедут наверх. И только через 4-5 нажатий все будет так как и должно быть - ЛЕТО и ОСЕНЬ будут останавливаться на той координате, кот. указана в скрипте, до того они гуляют от минус до плюс бесконечности. Все станет предельно ясно и не будет требовать дополнительных разъяснений когда скачаете исходник. Кто может объяснить в чем дело? Ошибок в скрипте вроде нет... |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Ну нафига задавать интервал в 1 мс? Да еще и писать updateAfterEvent после этого. У вас монитор 1000 герц держит?
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 29
|
Ну а даже если 10 мс... Все равно все тоже. Сути скрипта то это не изменит. А без апдейтафтеривент движение слишком дискретно.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это очень маленькие интервалы, нет никакого смысла в них. Читайте хелп, там написано, что интервал зависит от частоты кадров и от многих других кадров и не является точным средством выполнения кода в заданные промежутки времени, особенно в такие.
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 29
|
Вы имеете в виду, что интервалы должны быть больше? Даже если поставить 100 мс при достаточном фпс все равно скрипт не работает нормально...
Судя по всему ни у кого нет предложений как исправить ошибку? Неужели придется разбивать движение объектов по кадрам? Может тогда кто нибудь может сказать как по-иному программно выполнить стоящую передомной задачу? |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Зачем там стоит break? Это совсем из другй оперы.
замените на ( и меньше соотверственно ), на else координату приравняйте к конечной, интервал поставьте xотя бы 20, а смещение увеличьте. Ну еще можно Tween заюзать для таких дел, очень удобно(см. хелп по компонентам). |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Вот исправил тебе тут:
http://khk.com.ua/un-mistery.rar |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 29
|
Огромное спасибо. Все так как должно быть.
|
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Тока там надо, цикл сделать для того что бы не присваивать каждой кнопе функцию, циклом надо это сделать...вчера до 3:30, никак не мог пянть, как её написать (мозги не работали)...если будет время кину тебе ссылку с более универсальным кодом.
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 29
|
ок. Будет отлично) Хотя и так все работает хорошо. Можешь не заморачиваться)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|