PDA

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


KLIFF
30.01.2007, 06:17
всем привет!
есть функция в нее приходит текст "txt" и появляется мувик


function blabla(txt:String) {
this.pole.text=txt;
this.muvik._visible = true;
}


вопрос как сделать в теле этой функции что бы после прихода в нее "txt"
ровно через 10 секунд мувик изчез? "this.muvik._visible = false;"
а если текст пришел раньше чем мувик изчез то время обнуляеться и отчёт идёт заного...
у меня чё та не выходит =) юзал setInterval... если кто знает помогите

Kikasso
30.01.2007, 06:54
8-ка:
setTimeout( function(){this.muvik._visible = false;}, 10*1000 );

7-ка:
var vInt = setInterval( function(){ clearInterval(vInt); this.muvik._visible = false;}, 10*1000 );

KLIFF
30.01.2007, 21:25
ты наверное не понял вопроса!
это то я знаю то что ты написал!

проблема в том что в ФУНКЦИЮ приходит текст!!!
после чего мувик появляеться после 10 секунд он пропадает!

но что бы он изчез нужно сделать в тойже функции куда приходит текст

Mr. Fixit
30.01.2007, 21:48
ну закрутил тему...
function blagragra(txt:String) {
this.pole.text=txt;
this.muvik._visible = true;
if(прошло 10 секунд) this.muvik._visible = false;
}

iNils
30.01.2007, 21:55
2 Mr. Fixit: Вы на грани бана.

KLIFF
30.01.2007, 23:01
Mr. Fixit =)) если бы всё так было просто!
сделал вот как

function AText(niktxt:String, txt:String) {
cont[niktxt].tex.textchat.text = txt;
cont[niktxt].tex.bgchat._visible = true;
_global.nikin = niktxt;
}

var vInt = setInterval(function(nikin:String) {
clearInterval(vInt);
cont[_global.nikin].tex.textchat.text = "";
cont[_global.nikin].tex.bgchat._visible = false;
}, 6*1000);


вот если убить clearInterval(vInt); то это всё дело в цикле! этого не нужно! а если оставить! то пропадает только один раз! или вообще не пропадает если текст пришел после 6 секунд=((( потом не работает

может можно как-то запустить "vInt " из function AText ???
что бы обнулить время и запустить ее еще раз
у кого какие идеи?

Mr. Fixit
30.01.2007, 23:14
я понял трабл.. ты мутишь Чат.. где текст, через 6сек должен пропадать..
завтыкаю.. и если добьюсь правильного решения напишу.. :)

Mr. Fixit
30.01.2007, 23:24
может что-то убрал.. но смотри

KLIFF
30.01.2007, 23:51
Mr. Fixit это тоже самое!

intruder2
30.01.2007, 23:53
бедняжка мучался делал ))

Mr. Fixit
31.01.2007, 00:24
а типа надо, что бы функция дальше вызывалась при нажатии опр. кнопки?
нипанимаю

Kikasso
31.01.2007, 02:06
muvik._visible = false;
var vInt:Number;
function blabla(txt:String) {
clearInterval(vInt);
pole.text=txt;
muvik._visible = true;
vInt = setInterval( function(){ clearInterval(vInt); pole.text=""; muvik._visible = false;}, 2500 );
}

setTimeout( blabla, 1000, "1111");
setTimeout( blabla, 4000, "2222");
setTimeout( blabla, 5000, "33333");
setTimeout( blabla, 15000, "4444");
обратите внимание, я убрал "this" отовсюду. Это не просто так, изнутри setInterval() this не работает - либо так, либо _root и т.д., либо Delegate.create()

KLIFF
31.01.2007, 04:49
проблема решина ... решил не программно =)) тема закрыта

iNils
31.01.2007, 11:53
обратите внимание, я убрал "this" отовсюду. Это не просто так, изнутри setInterval() this не работает - либо так, либо _root и т.д., либо Delegate.create()Воспользоваться вторым синтаксисом setInterval для объектов.
setInterval (obj:Object, func:String, time:Number, arg1, arg2,...,argN)

Kikasso
31.01.2007, 12:38
Или так, согласен. Но получилось бы менее наглядно - интервал же надо стряхнуть, еще метод добавлять на объект. Можно было и таймаутом конечно.. Да все равно это не нужно - вопрос решен "не программно".