Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.06.2011, 01:13
Prior вне форума Посмотреть профиль Отправить личное сообщение для Prior Найти все сообщения от Prior
  № 1  
Ответить с цитированием
Prior

Регистрация: Aug 2009
Сообщений: 74
По умолчанию обнуление интервала

хочу спросить почему неполучаеться обнулить интервал
исходник

кусок кода
Код AS1/AS2:
trace ("movID    "+movID);
 movID= setInterval (smov, 20);
trace ("movID posle    "+movID);
которое выдает трейсом в нужный момент
Код:
movID 0
movID posle 11
хотя в функции смов прописано
Код AS1/AS2:
if  (movID>=_root.n)  {
  movID=0;
где _root.n = 10

помогите разобраться
уже где только не указывал movID=0; всеравно оно дальше считает 12,13,14 ,,,,,

Старый 11.06.2011, 01:34
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS1/AS2:
clearInterval(movID);
__________________
тут я

Старый 11.06.2011, 02:57
Prior вне форума Посмотреть профиль Отправить личное сообщение для Prior Найти все сообщения от Prior
  № 3  
Ответить с цитированием
Prior

Регистрация: Aug 2009
Сообщений: 74
делаю клир после каждого запуска
полный код
Код AS1/AS2:
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();
	}
}

Старый 11.06.2011, 08:51
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
or и and - устаревшие операторы. Используйте || и && соответственно.
Код ужасен, тяжело разобраться, много лишнего. Некоторые вещи можно записать проще. Ну это так, к слову. Эти функции когда выполняются? И еще, разве после очистки интервала ссылка на него не будет равна null, а не 0, как вы проверяете?
__________________
тут я

Старый 11.06.2011, 12:17
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
в код вникать даже не стал.
скажу одно - интервалы штука нежная, трепетная и глючная.
Заведите переменную на root и там ее держите.

_level0.ID = setInterval
clearInterval(_level0.ID)

Так оно будет максимально надежно и плевать на области видимости.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 11.06.2011, 17:41
Prior вне форума Посмотреть профиль Отправить личное сообщение для Prior Найти все сообщения от Prior
  № 6  
Ответить с цитированием
Prior

Регистрация: Aug 2009
Сообщений: 74
сделал так
Код AS1/AS2:
function interval(){
	trace (_root.movID+ ' - ');
	_root.movID= setInterval (smov, 20);
	trace (_root.movID+ ' + ');
}
 
function clearInt(){
	clearInterval(_root.movID);
	trace (_root.movID+ ' -+- ');
}
трейсом выдает
Код:
0 - 
1 + 
all START
1 -+- 
1 - 
2 + 
2 -+- 
2 - 
3 + 
3 -+- 
3 - 
4 + 
4 -+- 
4 - 
5 + 
5 -+- 
5 - 
6 + 
6 -+- 
6 - 
7 + 
7 -+- 
7 - 
8 + 
8 -+- 
8 - 
9 + 
9 -+- 
9 - 
10 + 
10 -+- 
roll = 0
0 - 
11 + 
11 -+-

Старый 11.06.2011, 17:47
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
movID - это не количество "тиков" таймера. Это ID интервала в каком-то глобальном массиве всех интервалов. Вы каждый раз создаете новый, а десятый уничтожаете.
__________________
тут я

Старый 11.06.2011, 17:58
Prior вне форума Посмотреть профиль Отправить личное сообщение для Prior Найти все сообщения от Prior
  № 8  
Ответить с цитированием
Prior

Регистрация: Aug 2009
Сообщений: 74
хе
а я то думал
теперь сделал правильно
добавил 1 переменную которая отвечает за количество тиков
и все пошло отлично )
спасибо всем за муки особый низкий поклон КорДуму

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.