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

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

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

Регистрация: Apr 2002
Адрес: СПб
Сообщений: 288
Question как избавиться от погрешности

Есть код
Код:
stop();
//кнопка "влево"
_root.bl.onRelease = function() {
	_root.plays = 1;
	_root.x2 = _root.box._x+205;
};
//кнопка "вправо"
_root.br.onRelease = function() {
	_root.plays = -1;
	_root.x2 = _root.box._x-205;
};
_root.onEnterFrame = function() {
	if (_root.plays == 1) {
		_root.box._x = _root.x2-(_root.x2-_root.box._x)/2;
	} else if (_root.plays == -1) {
		_root.box._x = _root.x2+(-_root.x2+_root.box._x)/2;
	}
	trace(_root.box._x);
};
Посоветуйте, плиз, как избавиться от погрешности перемещения
(т.е. надо чтобы BOX вставал в целые координаты кратные 205, без всяких сотых)
Пробовал Math.floor и Math.ceil, но box._x - может быть и отрицательная.

Старый 18.07.2005, 12:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код:
around = function (arg) {
	if (arg > 0) {
		return Math.floor (arg);
	} else {
		return Math.ceil (arg);
	}
};
// пример
trace(around (-205.1842))
trace(around (-205.9842))
trace(around (205.1842))
trace(around (205.9842))
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 18.07.2005, 13:07
as_68 вне форума Посмотреть профиль Отправить личное сообщение для as_68 Найти все сообщения от as_68
  № 3  
Ответить с цитированием
as_68
 
Аватар для as_68

Регистрация: Apr 2002
Адрес: СПб
Сообщений: 288
А не хочет
Код:
stop();
around = function (arg) {
	if (arg > 0) {
		return Math.floor (arg);
	} else {
		return Math.ceil (arg);
	}
};
stop();
//кнопка "влево"
_root.bl.onRelease = function() {
	_root.plays = 1;
	_root.x2 = around(_root.box._x+205);
	trace(_root.x2);
};
//кнопка "вправо"
_root.br.onRelease = function() {
	_root.plays = -1;
	_root.x2 = around(_root.box._x-205);
	trace(_root.x2);
};
_root.onEnterFrame = function() {
	if (_root.plays == 1) {
		_root.box._x = _root.x2-(_root.x2-_root.box._x)/2;
	} else if (_root.plays == -1) {
		_root.box._x = _root.x2+(-_root.x2+_root.box._x)/2;
	}
};
результаты:
205
409
613
407
202

Старый 18.07.2005, 13:19
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
дай исходник, я не могу понять что у тебя там делается.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 18.07.2005, 13:25
as_68 вне форума Посмотреть профиль Отправить личное сообщение для as_68 Найти все сообщения от as_68
  № 5  
Ответить с цитированием
as_68
 
Аватар для as_68

Регистрация: Apr 2002
Адрес: СПб
Сообщений: 288
лови исходник
Вложения
Тип файла: rar ishod.rar (4.3 Кб, 38 просмотров)

Старый 18.07.2005, 15:54
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
а понятно. тебе нужно при нажатии не к текущим координатам прибавлять 205, а увеличивать или уменьшать счетчик нажатии. то есть, в самом начале он равен 0, при нажатии влево отнимается 1, а вправо наоборот прибавляется. после умножаешь счетчик на 205, это и будет твоя конечная координата для объекта.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 18.07.2005, 16:30
as_68 вне форума Посмотреть профиль Отправить личное сообщение для as_68 Найти все сообщения от as_68
  № 7  
Ответить с цитированием
as_68
 
Аватар для as_68

Регистрация: Apr 2002
Адрес: СПб
Сообщений: 288
огромный сенкс

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

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

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


 


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


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