Форум 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)
-   -   flash6 и flash8 (http://www.flasher.ru/forum/showthread.php?t=87672)

pupo4kin 09.11.2006 16:11

flash6 и flash8
 
при установке flash6 в семплах есть такой файл, где двигается божья коровка с помощью джойстика, управляемого мышкой. Когда отпускаешь джойстик, то он возвращается в исходное положение. Этот возврат осуществляется с помощью такого кода:

Код:

tension=0.5;
decay=0.5;
xSpeed = -knob._x*tension+(xSpeed*decay);
  knob._x += xSpeed;

получаются такие своеобразные колебания.

Почему-то этот код не работает во flash8!!!!

iNils 09.11.2006 16:29

Надо добавить
Код:

xSpeed = 0

pupo4kin 09.11.2006 16:35

:)) всё гениальное просто!!!

СПАСИБО!!

pupo4kin 09.11.2006 19:42

ещё одна проблема появилась! не получается создать два такких объекта. Т.е. создать получается, но выходит какая-то белиберда с возвращением...почему-то не в те точки возвращаются мувики!!

iNils 09.11.2006 19:47

Я не умею гадать. Как и что вы там сделали я не знаю.

pupo4kin 09.11.2006 20:10

Вот так выглядит код для муви клипа "mc":

Код:

tension =0.5;
decay =0.5;
x=mc._x;
y=mc._y;
xSpeed=0;
ySpeed=0;

onEnterFrame = function() {
        r=Math.sqrt((_root._xmouse-x)*(_root._xmouse-x)+(_root._ymouse-y)*(_root._ymouse-y));
        r=Math.ceil(r);
  with(mc){
        if (r<=50){
          _x=_parent._xmouse;
          _y=_parent._ymouse;
        } else {
                xSpeed =-_x*tension+(xSpeed*decay);
                _x += xSpeed+x;
                ySpeed = -_y*tension+(ySpeed*decay);
                _y += ySpeed+y;
                }
  }
}

если на сцену поместить другой мувик, и сделать, чтобы он так же реагировал на курсор, то ничего не получается.
Код:

tension=0.5;
decay=0.5;
x=mc._x;
y=mc._y;
x1=mc1._x;
y1=mc1._y;
xSpeed=0;
ySpeed=0;
onEnterFrame=function() {
        r=Math.sqrt((_root._xmouse-x)*(_root._xmouse-x)+(_root._ymouse-y)*(_root._ymouse-y));
        r=Math.ceil(r);// расстояние от курсора до центра муви клипа
  with(mc){
        if (r<=100){
          _x=_parent._xmouse;
          _y=_parent._ymouse;
        } else {
                xSpeed =-_x*tension+(xSpeed*decay);
                _x += xSpeed+x;
                ySpeed = -_y*tension+(ySpeed*decay);
                _y += ySpeed+y;
                }
  }
r=Math.sqrt((_root._xmouse-x1)*(_root._xmouse-x1)+(_root._ymouse-y1)*(_root._ymouse-y1));
        r=Math.ceil(r);
  with(mc1){
        if (r<=50){
          _x=_parent._xmouse;
          _y=_parent._ymouse;
        } else {
                xSpeed =-_x*tension+(xSpeed*decay);
                _x += xSpeed+x1;
                ySpeed = -_y*tension+(ySpeed*decay);
                _y += ySpeed+y1;
                }
  }

}


iNils 09.11.2006 20:22

Назвать мувиклипы mc0 и mc1, а потом вставить скрипт
Код:

tension = 0.5;
decay = 0.5;
onEnterFrame = function () {
        for (var i = 0; i < 2; i++) {
                var mc = this["mc" + i];
                if (!mc.flag) {
                        mc.flag = true;
                        mc.x = mc._x;
                        mc.y = mc._y;
                        mc.xSpeed = 0;
                        mc.ySpeed = 0;
                }
                var r = Math.ceil (Math.sqrt ((this._xmouse - mc.x) * (this._xmouse - mc.x) + (this._ymouse - mc.y) * (this._ymouse - mc.y)));
                if (r < 101) {
                        mc._x = this._xmouse;
                        mc._y = this._ymouse;
                } else {
                        mc.xSpeed = -mc._x * tension + (mc.xSpeed * decay);
                        mc._x += mc.xSpeed + mc.x;
                        mc.ySpeed = -mc._y * tension + (mc.ySpeed * decay);
                        mc._y += mc.ySpeed + mc.y;
                }
        }
};


pupo4kin 09.11.2006 20:37

ха! с циклом я тоже делал..тока без флага...
спасибо, очень помог....буду разбираться...

pupo4kin 09.11.2006 20:49

зайди на http://www.gringos.ru/v3/ там ещё ничего не доделано, но меню, благодаря тебе, получилось..

iNils 09.11.2006 21:15

Посмотрел, надо либо уменьшить зону реагирования, либо растояние мужде кружками подобрать чтобы они не пересекались, либо и то и другое. А то я умудряюсь собрать в одну кучу web, logo и print.


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

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