PDA

Просмотр полной версии : таймер до определенной переменной


chillwill
02.08.2005, 18:49
Доброго времени суток!
Вот что меня интересует, как сделать таймер до определенной вводимой переменной, допустим из текстового файла.

Т.е. я ввожу число i=200 и теперь ролик таймит до цифры 200
(1,2,3,...,198,199,200).

Как вообще работает таймер и как он связан с ФПС.

Простите, если вопрос глуп, достаточно долго искал.

Спасибо.

iNils
02.08.2005, 18:57
единицы измерения секунды?

Takato
02.08.2005, 19:01
Доброго времени суток!
Вот что меня интересует, как сделать таймер до определенной вводимой переменной, допустим из текстового файла.

Т.е. я ввожу число i=200 и теперь ролик таймит до цифры 200
(1,2,3,...,198,199,200).

Как вообще работает таймер и как он связан с ФПС.

Простите, если вопрос глуп, достаточно долго искал.

Спасибо.

Например так

i=200

do
{n=n+1
}
while (n>=i);


ФПС задается в меню Modify-Movie-Frame Rate (по умолчанию 12). То есть, если тебе нужен не просто счетчик до 200 "кадров", а 200 секунд, то

i=200*12

do
{n=n+1
}
while (n>=i);

KidsKilla
02.08.2005, 19:08
i=200

do
{n=n+1
}
while (n>=i);


в корне неверно.
while в 1м кадре выполнится;



1) 200 секунд:
var secs = 200;
var cntr = 0;
function func(){
// тут всё что тебе нужно делать каждую секунду
If( cntr == secs){
clearInterval(tmr)
// а тут по истечении времени
}
cntr++
}
tmr = setInterval(func, 1000);

2) 200 кадров:
var frms = 200;
var cntr = 0;
this.onEnterFrame = function(){
// тут всё что тебе нужно делать в каждом фрейме
If( frms == secs){
delete this.onEnterFrame
// а тут по истечении времени
}
cntr++
}

Takato
02.08.2005, 19:12
в корне неверно.
while в 1м кадре выполнится;



Что не верно? Я только что сделал - все работает. Тикает счетчик от 0 до 200

KidsKilla
02.08.2005, 19:13
а, тамж условие иное, сорь...

K.A.T.A.F.A.L.K.E.R
02.08.2005, 19:15
Ну, например так...

var num = 1;

function showNum(){
if(num<=lastNum){
trace(num++);
} else {
clearInterval(intID);
}
}

lastNum = 200;
intID = setInterval(showNum,1000);

С фреймрейтом таймер, по идее, не связан. Ты задаешь промежуток в миллисекундах (в данном случае 1000) и все...

KidsKilla
02.08.2005, 19:16
сколько вариантов, сколько помогальщикофф =))

Takato
02.08.2005, 19:19
сколько вариантов, сколько помогальщикофф =))

:p

Я даже еще один короткий вариант придумал (ЗЫ Тока я так и не понял - счетчик кадров или всё-таки секунд должен идти?) Если кадров то -

i=200

if(n<i)
{n=n+1}

Тока надо 2-ой кадр еще сделать в котором

gotoAndPlay (1);

KidsKilla
02.08.2005, 19:21
а чем тебе onEntrerFrame не угодил?

Takato
02.08.2005, 19:27
а чем тебе onEntrerFrame не угодил?

Я написал для _root'a, а не для объекта

KidsKilla
02.08.2005, 20:48
Я написал для _root'a, а не для объекта
а почему бы не _root.onEnterFrame ???

chillwill
03.08.2005, 17:00
Всем спасибо! Всё оказалось быстрее, чем я думал.

Подошел код: :)
var num = 1;

function showNum(){
if(num<=lastNum){
trace(num++);
} else {
clearInterval(intID);
}
}

lastNum = 200;
intID = setInterval(showNum,1000);

K.A.T.A.F.A.L.K.E.R, отдельное спасибо.
Блин, правда теперь ещё с одной проблемой столкнулся.