Показать сообщение отдельно
Старый 02.01.2011, 16:45
U4enik вне форума Посмотреть профиль Отправить личное сообщение для U4enik Найти все сообщения от U4enik
  № 5  
Ответить с цитированием
U4enik

Регистрация: Jun 2010
Сообщений: 97
Цитата:
Сообщение от rainbowrussia Посмотреть сообщение
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;
}
Спасибо за помощь. Теперь все ок. Просто я почему-то не знал что _rotation не принимает значения больше 180