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

Therion 20.05.2007 03:25

Отмена всего
 
как при переходе в следующий кадр отменить все запущенные в предыдущем кадре функции....
тоесть в первом кадре у меня запускается функция F, и припереходе в сдедующий кадр её надо удалить, пытался с помощю delete, но не полоучается
помогите пожалуйста:)

marat_sa 20.05.2007 10:16

Попробуй удалять delet'om не функцию, а обработчик событий onEnterFrame или onLoad.

screamge 20.05.2007 10:23

Незнаю насколько это удобно в твоём случае но можно ставить флаги, т.е:
Код:

if (!flag)

Kikasso 20.05.2007 11:11

Функция отрабатывает один раз, код покажите.

Therion 21.05.2007 00:31

ок
задача меняется...теперь надо просто вырубить запущенную функцию grav()....при нажатии на кнопку reset
по странной причине исходник прикрепить не могу.....
напишу код здесь:
Код:

clear();
Play.enabled = true;
function drag(obj4) {
        for (i=0; i<obj4.length; i++) {
                obj4[i].onPress = function() {
                        this.startDrag();
                };
                obj4[i].onRelease = function() {
                        this.stopDrag();
                };
        }
}
function grav(obj1, obj2, obj3, XXX, YYY) {
        var Vx = XXX;
        var G = 1;
        var Vy = YYY;
        var Nx = 0;
        var Ny = 0;
        moveTo(obj1._x, obj1._y);
        lineStyle(1, 0x00FF00, 70);
        obj1.onEnterFrame = function() {
                lineTo(this._x, this._y);
                if (this.hitTest(target)) {
                        unloadMovie(this);
                }
                for (i=0; i<obj2.length; i++) {
                        var X = this._x-obj2[i]._x;
                        var Y = this._y-obj2[i]._y;
                        var D = Math.sqrt(X*X+Y*Y);
                        if (D>10) {
                                F = 400/D;
                                R = Math.atan2(Y, X);
                                VFx = -Math.cos(R)*F;
                                VFy = -Math.sin(R)*F;
                                Vx = (VFx+Vx*G+Nx);
                                Vy = (VFy+Vy*G+Ny);
                        } else {
                                Vx = -Vx;
                                Vy = -Vy;
                        }
                }
                if (obj3.length>0) {
                        for (f=0; f<obj3.length; f++) {
                                XX = this._x-obj3[f]._x;
                                YY = this._y-obj3[f]._y;
                                Dn = Math.sqrt(XX*XX+YY*YY);
                                if (Dn>10) {
                                        Fn = -400/Dn;
                                        Rn = Math.atan2(YY, XX);
                                        Nx = -Math.cos(Rn)*Fn;
                                        Ny = -Math.sin(Rn)*Fn;
                                } else {
                                        Vx = -Vx*0.9;
                                        Vy = -Vy*0.9;
                                }
                        }
                }
                this._x += Vx/5;
                this._y += Vy/5;
        };
}
Play.onPress = function() {
        obj5 = [P1, N1];
        for (i=0; i<obj5.length; i++) {
                obj5[i].enabled = false;
        }
        Play.enabled = false;
        grav(P1, [N1], [], 0, 0);
};
drag([P1, N1]);
stop();
reset.onPress = function() {
        for (i=0; i<obj5.length; i++) {
                obj5[i].enabled = true;
        }
       
        delete grav(P1, [N1], [], 0, 0);////вот тут пытаюсь  выключить функцию, она выключается и опять включается :(
};

помагите плиз

iNils 21.05.2007 00:48

Код:

delete obj1.onEnterFrame

Therion 21.05.2007 00:58

Цитата:

Сообщение от iNils
Код:

delete obj1.onEnterFrame

Гениально
спасибо!!!:yahoo: :yahoo:

iNils 21.05.2007 01:18

Об этом во втором посте написали.

Therion 21.05.2007 01:25

я уже понял, просто я такого ещё не разу не использовал(delete obj.onEnterFrame), поэтому и не совсем понял что именно Marat_sa имел введу :(


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

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