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

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

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

Регистрация: Mar 2004
Сообщений: 32
Отправить сообщение для FaNaT1K с помощью ICQ
По умолчанию Затухание маятника

Вы меня простите. тема истертая, и обсуждалась тут ни раз с исходниками, но я не могу их скачать поэтому прошу совета:
есть код,не работает не могу понять почему? Мне кажется в формуле маятника ошибка...но не могу сообразить где
Код AS1/AS2:
var k:Number = 1000;
var n:Number = 200;
var al:Number = 0.1;
var A:Number = null;
var t:Number = null;
var gruz_pressed:Boolean = false;
var gruz_pos:Number = gruz._y;
var pruz_height:Number = pruzina._height;
var pruz_width:Number = pruzina._width;
gruz.onPress = function():Void  {
	gruz_pressed = true;
	startDrag(this, false, this._x, gruz_pos, this._x, 3*pruz_height+gruz_pos);
};
gruz.onMouseUp = function():Void  {
	if (gruz_pressed) {
		gruz_pressed = false;
		gruz.stopDrag();
	}
	A = gruz._y-gruz_pos;
};
_root.onEnterFrame = function():Void  {
	if (gruz_pressed) {
		pruzina._height = pruz_height+gruz._y-gruz_pos;
	} else {
		t = t+2;
		pruzina._height = pruz_height+Math.abs(A*Math.cos(Math.sqrt(k/n)*t)*Math.exp(-al*t));
		gruz._y = gruz_pos+Math.abs(A*Math.cos(Math.sqrt(k/n)*t)*Math.exp(-al*t));
	}
};

Старый 26.02.2009, 23:07
FaNaT1K вне форума Посмотреть профиль Отправить личное сообщение для FaNaT1K Найти все сообщения от FaNaT1K
  № 2  
Ответить с цитированием
FaNaT1K

Регистрация: Mar 2004
Сообщений: 32
Отправить сообщение для FaNaT1K с помощью ICQ
Все , разобрался:
В обработчике функции грузика добавил переменную t с начальным значением
Код AS1/AS2:
gruz.onMouseUp = function():Void  {
	if (gruz_pressed) {
		gruz_pressed = false;
		gruz.stopDrag();
	}
	A = gruz._y-gruz_pos;
	t=1;
};
а в обработчике функции задающей амплитуду колебаний счетчик переменной t :
Код AS1/AS2:
_root.onEnterFrame = function():Void  {
	if (gruz_pressed) {
		pruzina._height = pruz_height+gruz._y-gruz_pos;
	} else {
		pruzina._height =pruz_height+Math.abs(A*Math.cos(Math.sqrt(k/n)*t)*Math.exp(-al*t));
		gruz._y =gruz_pos+Math.abs(A*Math.cos(Math.sqrt(k/n)*t)*Math.exp(-al*t));
		trace(t);
		t +=1;
	}
};
Кому интересно...исходничек прилагается
Вложения
Тип файла: rar mayatnik.rar (27.8 Кб, 76 просмотров)

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

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

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


 


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


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