Форум 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=123631)

Rot pfeffer 06.04.2009 21:31

Движение нескольких мувиков от курсора
 
Вложений: 1
Добрый день.
Пните меня в нужную сторону, вторые сутки мучаюсь...
Задача - программно создать несколько мувиков в нужных координатах.

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

Прочитал кучу страниц, нашел много примеров, состряпал свое но не могу получить конечный результат.

С одним мувиком я справился, а вот вывести 2 не могу, что бы они бегали одновременно от курсора и возращались на свои места.

Если вывожу 2, то все действия закрепляются за последним мувиком.

Подскажите как сделать?

Код:

this.attachMovie("circle", "mmm",0);

//начальные координаты
var _startX:Number = 199;
var _startY:Number = 199; 

//конечные координаты
var _finishX:Number = 200;
var _finishY:Number = 200;
//скорость
var _speed:Number = 5;
//
mmm._x = _startX;
mmm._y = _startY;
mmm.onEnterFrame = function() {
        if (this._x<_finishX) {
                this._x +=_speed;
        }
        if (this._x>_finishX) {
                this._x -=_speed;
        }
       
        if (this._y<_finishY) {
                this._y +=_speed;
        }
        if (this._y>_finishY) {
                this._y -=_speed;
        }
       
};
// уходим от курсора
this.dist = function () {
return Math.sqrt (Math.pow (this._xmouse - this.mmm._x, 2) + Math.pow (this._ymouse - this.mmm._y, 2));

};



this.move = function ()
        {
        var r = this.dist ();
        if (r < 50) {

                var dr = (50 - r) / 2;
                var u = Math.atan2 (this._ymouse - this.mmm._y, this._xmouse - this.mmm._x);
                this.mmm._x -= dr * Math.cos (u);
                this.mmm._y -= dr * Math.sin (u);
                }
        else {
                delete this.onEnterFrame;
                }
        };

this.onMouseMove = function () {
if (this.dist () < 10) {

this.onEnterFrame = this.move;
}
};


Vektor 07.04.2009 00:25

Вложений: 1
Старался по максимуму сохранить оригинал, поэтому получилось немного коряво.

Rot pfeffer 07.04.2009 11:28

Цитата:

Сообщение от Vektor (Сообщение 811405)
Старался по максимуму сохранить оригинал, поэтому получилось немного коряво.

Спасибо преогромное. Не ожидал что все сделают за меня =)


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

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