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

Dr_Bra 01.03.2009 20:30

управление объектом
 
Привет всем, хорошего настроения!
Подскажите пожалуйста, как можно остановить объект clip_mc, когда он достигает курсора?
Есть бабочка, которая махает крыльями и движется на курсор. Бабочка и есть clip_mc.
код который используется
Код AS1/AS2:

//бабочка
clip_mc.onEnterFrame = function() {
this._x -= (clip_mc._x-_xmouse)/80;
this._y -= (clip_mc._y-_ymouse)/80;
this._rotation=Math.atan2((this._y-this._parent._ymouse),(this._x-this._parent._xmouse))*180/Math.PI;
};


Kuruki 01.03.2009 20:52

Код AS1/AS2:

clip_mc.onEnterFrame = function() {
if(this._x == _xmouse && this._y == _ymouse){
this.onEnterFrame = null;
// или
// delete this.onEnterFrame;
return;
}
this._x -= (clip_mc._x-_xmouse)/80;
this._y -= (clip_mc._y-_ymouse)/80;
this._rotation=Math.atan2((this._y-this._parent._ymouse),(this._x-this._parent._xmouse))*180/Math.PI;
};


Dr_Bra 01.03.2009 22:08

Вложений: 1
что-то не получается
а если Ваш код применять на сайте, то все сбрасывается

qazwsx 01.03.2009 22:14

А ты уверен что для ас2 = null и все будет нормально:)? У меня бывало что при таком плеер просто начинал вылетать). delete всетаки не так работает

Dr_Bra 01.03.2009 22:38

как вы думаете, есть вариант это корректно сделать?

qazwsx 01.03.2009 23:05

Ну самое простое хит тест с мыщью если там нету какойто особой нагрузки в остальном коде)

Dr_Bra 02.03.2009 00:00

Цитата:

Сообщение от qazwsx (Сообщение 802142)
Ну самое простое хит тест с мыщью если там нету какойто особой нагрузки в остальном коде)

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

Fatality 02.03.2009 00:33

Я правильно вас понял, вам необходимо остановить анимацию клипа, если курсор находится над ним ?
Код AS1/AS2:

//бабочка
clip_mc.onEnterFrame = function() {
this._x -= (clip_mc._x-_xmouse)/80;
this._y -= (clip_mc._y-_ymouse)/80;
if(this.hitTest(_xmouse, _ymouse)) this.stop();
this._rotation=Math.atan2((this._y-this._parent._ymouse),(this._x-this._parent._xmouse))*180/Math.PI;
};


Kuruki 02.03.2009 01:48

Цитата:

Сообщение от qazwsx (Сообщение 802134)
А ты уверен что для ас2 = null и все будет нормально:)? У меня бывало что при таком плеер просто начинал вылетать). delete всетаки не так работает

У меня приведенный код работает нормально, при совпадении координат клип перестает двигаться и никаких ошибок или вылетов нет. Хотя не буду спорить может и возможны какие-то баги...


Тут по-идеи у не нужно удалять onEnterFrame, при достижении координат курсора к координатам клипа просто будут прибавляться нули

qazwsx 02.03.2009 07:37

Дак совпадение координат будет в 1 случае из 1000 :). Там же (clip_mc._x-_xmouse)/80 может получится и не целое число а _x/_ymouse целое число.


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

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