Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Затухание маятника (http://www.flasher.ru/forum/showthread.php?t=121940)

FaNaT1K 26.02.2009 19:34

Затухание маятника
 
Вы меня простите. тема истертая, и обсуждалась тут ни раз с исходниками, но я не могу их скачать поэтому прошу совета:
есть код,не работает не могу понять почему? Мне кажется в формуле маятника ошибка...но не могу сообразить где
Код 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));
        }
};


FaNaT1K 26.02.2009 23:07

Вложений: 1
Все , разобрался:
В обработчике функции грузика добавил переменную 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;
        }
};

Кому интересно...исходничек прилагается


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

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