![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
В общем я все форумы облазил, про setInterval говорили много, но того, что мне надо, я так и не нашёл.
А надо мне следующее: я периодически выполняю функцию с помощью setInterval и хочу изменять параметр interval. Я пробовал динамически создавать эту функцию, а потом clearInterval, но что-то не получается. (Открою секрет, этой функцией я опускаю кубик в тетрисе и мне нужно резко увеличивать скорость, когда нажимают стрелку вниз, а также изменять скорость в зависимости от уровня.) Help will be much appreciated. If I ever finish programming this game, I promise to lay out its source code here at flasher.ru Thanks
__________________
Не всё то флэш, что шевелиться. |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 1,893
|
time=1000;
setInterval( function(){ trace(time) }, _root.time ); this.onMouseDown=function(){ time+=100; } |
|
|||||
|
Трейсит-то он нормально, мол, всё окей, тайм увеличили, но ведь трейсит-то он он по-прежнему с той-же скоростью! - 1 раз в секунду, а мне нужно, чтобы динамически скорость можно было увеличивать или уменьшать, а не эту переменную менять.
__________________
Не всё то флэш, что шевелиться. |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 1,893
|
id=setInterval( function(){ mc._x++; }, 1000 );
this.onMouseDown=function(){ clearInterval(id); setInterval( function(){ mc._x++; }, 10 ); } |
|
|||||
|
Да, да, конечно, так пашет. Я тоже вчера на таком варианте остановился - отдельная функция для каждой скорости. Выходит мне таких нужно 10: 9 + 1- для падения. Я думал можно как-нибудь покороче.
Спасибо и на этом. До этого я не знал, что var id не обязательно объявлять перед id = setInterval();
__________________
Не всё то флэш, что шевелиться. |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 1,893
|
id нужен чтоб запомнить индивидуальный номер процесса возвращаемый при вызове steInterval, хотя можно и по номерам если не требуется чего-то более сложного:
setInterval(function(){mc1._x++},500); setInterval(function(){mc2._x++},100); this.onMouseDown = function(){ clearInterval(1)} this.onMouseUp = function(){ clearInterval(2)} |
|
|||||
|
Регистрация: Jan 2000
Адрес: BRD
Сообщений: 42
|
В компоненте FListBox используется точно такойже принцип.
class.clickHandler = function(itmNum) {
super.clickHandler(itmNum);
if (this.dragScrolling == undefined && this.scrollBar_mc != undefined) {
this.dragScrolling = setInterval(this, "dragScroll", 15);
};
};
class.dragScroll = function() {
clearInterval(this.dragScrolling);
var yMouse = this.container_mc._ymouse;
if (yMouse < 0) {
this.scrollPosition--;
this.selectionHandler(0);
this.scrollInterval = Math.max(25, -23.8*(-yMouse) + 500);
this.dragScrolling = setInterval(this, "dragScroll", this.scrollInterval);
} else if (yMouse > this._height) {
this.scrollPosition++;
this.selectionHandler(this.numDisplayed - 1);
this.scrollInterval = Math.max(25, -23.8*Math.abs(yMouse-this._height) + 500);
this.dragScrolling = setInterval(this, "dragScroll", this.scrollInterval);
} else {
this.dragScrolling = setInterval(this, "dragScroll", 15);
};
};
__________________
Дааа, не перевелись на Руси богатыри добры-молодцы!!? |
![]() |
Часовой пояс GMT +4, время: 15:41. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|