Показать сообщение отдельно
Старый 02.11.2009, 17:22
rockerror вне форума Посмотреть профиль Отправить личное сообщение для rockerror Найти все сообщения от rockerror
  № 8  
Ответить с цитированием
rockerror
 
Аватар для rockerror

Регистрация: Jul 2009
Сообщений: 40
Протестил оба варианта. Оба рабочие, однако о плавности не идет и речи. КАждое смещение происходит примерно через секунду после предыдущего. С чем это связано? Можно ли обеспечить непрерывность движения?

Добавлено через 11 минут
С этим разобрался. работаю с первым вариантом, т.е. сейчас код выглядит вот так:
Код AS1/AS2:
var i:Number=0;
var timer:Number=null;
var vkl:String=null;
 
function dvig():Void{
	_root.event2._x -= 10;
	_root.event3._x -= 10;
	_root.event4._x -= 10;
	if(i<30){
		i++;
	}
	else{
		i=0;
		clearInterval(time);
		eval(vkl).enabled=true;
	}
	updateAfterEvent();
}
 
this.but_left.onRelease = function() {
	timer=setInterval(dvig,8);
	this.enabled=false;
	vkl=''+this;
};
Все круто, но есть один единственный косяк... сместившись на ширину одного мувика, процессия не останавливается, она продолжает двигаться дальше... Ширина 1 мувика - 300... не могу разобраться... Хелп ми плиз...

Добавлено через 27 минут
Хмхмхм... Еще немного переработал... как мне кажется в верном ключе... но проблему не решил....(((( Теперь все выглядит вот так:
Код AS1/AS2:
var i:Number = _root.event1._x;
var time:Number = null;
var vkl:String = null;
 
function dvig():Void {
	if (i>-300) {
		_root.event1._x -= 10;
		_root.event2._x -= 10;
		_root.event3._x -= 10;
		_root.event4._x -= 10;
	} else {
		clearInterval(time);
		eval(vkl).enabled = true;
	}
	updateAfterEvent();
}
this.but_left.onRelease = function() {
	timer = setInterval(dvig, 8);
	this.enabled = false;
	vkl = ''+this;
};
Добавлено через 29 минут
хм в коде вместо &gt знак >

Добавлено через 1 час 13 минут
Ура! Друзья мои, всем огромное спасибо)) Довел код до необходимого результата!!! НО... Теерь кнопка срабатывает только после 2-х нажатий... Не могу понять почему... СЕйчас код выглядит вот так:

Код AS1/AS2:
this.but_left.onPress = function() {
tmp = setInterval (walk,1,-10);
walk = function(){
	if(_root.event1._x < 50){
		_root.event1._x += 3;
		_root.event2._x += 3;
		_root.event3._x += 3;
		_root.event4._x += 3;
	}else{
		_root.event1._x -= 0;
		_root.event2._x -= 0;
		_root.event3._x -= 0;
		_root.event4._x -= 0;
	clearInterval(tmp)
	}
}
};
Добавлено через 1 час 16 минут
Хах))) Написал сообщение и понял))) Все ВСЕ ОК!!!))) ВСЕМ ОГРОМНОЕ СПАСИБО!!!

Рабочий код:

Код AS1/AS2:
walk1 = function(){;
if(_root.event1._x < 50){;
_root.event1._x += 3;
_root.event2._x += 3;
_root.event3._x += 3;
_root.event4._x += 3;
}else{;
_root.event1._x -= 0;
_root.event2._x -= 0;
_root.event3._x -= 0;
_root.event4._x -= 0;
clearInterval(tmp);
};
};
this.but_left.onPress = function() {
tmp = setInterval(walk1, 1, -10);
};
 
walk2 = function(){;
if(_root.event1._x > -250){;
_root.event1._x -= 3;
_root.event2._x -= 3;
_root.event3._x -= 3;
_root.event4._x -= 3;
}else{;
_root.event1._x -= 0;
_root.event2._x -= 0;
_root.event3._x -= 0;
_root.event4._x -= 0;
clearInterval(tmp);
};
};
 
this.but_right.onPress = function() {
tmp = setInterval(walk2, 1, -10);
};
P.S.
Данный код можно исполззовать для галереи)))