Показать сообщение отдельно
Старый 02.01.2011, 07:55
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 4  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
clip._rotation не принимает значения больше 180. Замените:
clip._rotation >= 270 на clip._rotation >= -90
clip._rotation >= 360 на clip._rotation == 0

Либо введите переменную, cur_rotation и плюсуйте и сравнивайте ее.

Например:
Код AS1/AS2:
var cangle = 0;
var angle = 0;
knopka.onRelease = function () {
	angle += 90;
	clip.onEnterFrame = oef;
}
 
function oef() {
	if (cangle >= angle) {
		delete(this.onEnterFrame);
	} else {
		cangle += 5;
		clip._rotation = cangle;
	}
}
Если нужно во время выполнения вращения блокировать нажатия на кнопку, то вот:
Код AS1/AS2:
var cangle = 0;
var angle = 0;
knopka.onRelease = function () {
	if (!clip.onEnterFrame) {
		angle += 90;
		clip.onEnterFrame = oef;
	}
}
 
function oef() {
	if (cangle >= angle) {
		delete(this.onEnterFrame);
	} else {
		cangle += 5;
		clip._rotation = cangle;
	}
}
ps. Вариант с блокировкой, с одной переменной и однострочными функциями:
Код AS1/AS2:
var angle = 0;
 
knopka.onRelease = function () {
	clip.onEnterFrame = angle || (angle += 90) ? oef : oef;
}
 
function oef() {
	this._rotation += angle ? 5 + 0 * (angle -= 5) : 0 * delete this.onEnterFrame;
}


Последний раз редактировалось rainbowrussia; 02.01.2011 в 08:54.