![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 74
|
хочу спросить почему неполучаеться обнулить интервал
исходник кусок кода которое выдает трейсом в нужный момент хотя в функции смов прописано где _root.n = 10 помогите разобраться уже где только не указывал movID=0; всеравно оно дальше считает 12,13,14 ,,,,, |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 74
|
делаю клир после каждого запуска
полный код var x:Array = new Array(9); var y:Array = new Array(9); var w:Array = new Array(9); var xspeed:Array = new Array(9); var yspeed:Array = new Array(9); var wspeed:Array = new Array(9); var xe:Array = new Array(0, 70, 125, 180, 235, 290, 345, 400, 455, 510); _root.y[0]=80; _root.w[0]=40; var i :Number; var n:Number=10; var stab:Number = 0; var movID:Number=0; var roll:Number = 0; for (i=1; i<10; i++) { contT = "t" + i; _root.all_mc[contT].t_txt.text=i; } stop(); function stabiliz(){ if (_root.stab==0){ _root.stab=1; if (movID==0 or movID>n){ movID=0; for (i=1; i<10; i++) { contM = "m" + i; _root.x[i]=_root.all_mc[contM]._x; _root.y[i]=_root.all_mc[contM]._y; _root.w[i]=_root.all_mc[contM]._width; } _root.gotoAndStop (2); for (i=1; i<10; i++) { contM = "m" + i; contT = "t" + i; _root.all_mc[contM]._width=_root.w[i]; _root.all_mc[contM]._height=_root.w[i]; _root.all_mc[contM]._y=_root.y[i]; _root.all_mc[contM]._x=_root.x[i]=_root.all_mc[contM]._x; _root.all_mc[contT]._y=_root.y[i]; _root.all_mc[contT]._x=_root.x[i]=_root.all_mc[contM]._x; } for (i=1; i<10; i++) { contM = "m" + i; _root.wspeed[i]=(_root.w[0]-_root.w[i])/n; _root.xspeed[i]=(_root.xe[i]-_root.x[i])/n; _root.yspeed[i]=(_root.y[0]-_root.y[i])/n; } } } //if (stab!=2){ trace ("movID "+movID); movID= setInterval (smov, 20); trace ("movID posle "+movID); //} else {} } function smov() { clearInterval(movID); for (i=1; i<10; i++) { contM = "m" + i; contT = "t" + i; _root.all_mc[contM]._width=_root.all_mc[contM]._width+_root.wspeed[i]; _root.all_mc[contM]._height=_root.all_mc[contM]._height+_root.wspeed[i]; _root.all_mc[contM]._x=_root.all_mc[contM]._x+_root.xspeed[i]; _root.all_mc[contM]._y=_root.all_mc[contM]._y+_root.yspeed[i]; _root.all_mc[contT]._x=_root.all_mc[contT]._x+_root.xspeed[i]; _root.all_mc[contT]._y=_root.all_mc[contT]._y+_root.yspeed[i]; } trace (movID+" >= "+_root.n); if (movID>=_root.n) { movID=0; clearInterval(movID); for (i=1; i<10; i++){ contM = "m" + i; contT = "t" + i; _root.all_mc[contM]._width=_root.w[0]; _root.all_mc[contM]._height=_root.w[0]; _root.all_mc[contM]._x=_root.xe[i]; _root.all_mc[contM]._y=_root.y[0]; _root.all_mc[contT]._x=_root.xe[i]; _root.all_mc[contT]._y=_root.y[0]; } trace ("YRA "+ movID); if (stab==1 and roll==0) { _root.gotoAndStop(1); _root.all_mc.gotoAndPlay ('start'); trace ('goto start' ); } }else{ stabiliz(); } } |
|
|||||
|
or и and - устаревшие операторы. Используйте || и && соответственно.
Код ужасен, тяжело разобраться, много лишнего. Некоторые вещи можно записать проще. Ну это так, к слову. Эти функции когда выполняются? И еще, разве после очистки интервала ссылка на него не будет равна null, а не 0, как вы проверяете?
__________________
тут я |
|
|||||
|
в код вникать даже не стал.
скажу одно - интервалы штука нежная, трепетная и глючная. Заведите переменную на root и там ее держите. _level0.ID = setInterval clearInterval(_level0.ID) Так оно будет максимально надежно и плевать на области видимости. |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 74
|
сделал так
function interval(){ trace (_root.movID+ ' - '); _root.movID= setInterval (smov, 20); trace (_root.movID+ ' + '); } function clearInt(){ clearInterval(_root.movID); trace (_root.movID+ ' -+- '); } |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 74
|
хе
а я то думал теперь сделал правильно добавил 1 переменную которая отвечает за количество тиков и все пошло отлично ) спасибо всем за муки особый низкий поклон КорДуму |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|