Форум 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)
-   -   onEnterFrame для нескольких объектов (http://www.flasher.ru/forum/showthread.php?t=114543)

Forcasigun 01.08.2008 14:26

onEnterFrame для нескольких объектов
 
здравствуйте!

может не совсем тема подходит, но просто не знаю в чем именно дело...
вот такой код:
Код:

_global.frames = 50;
_global.dx = 0.1;
but_1.onPress = function() {
        for (j=1; j<7; j++) {
                me = eval("m"+j);
                trace(me._rotation);
                var x = 0;
                var objR = 0;
                var k = Math.abs(objR-me._rotation);
                var a = Math.pow((k+dx)*(1/dx), 1/(frames+j*10));
                var b = Math.log(k+dx)/Math.log(a);
                me.onEnterFrame = function() {
                        if (x<frames+j*10) {
                                x++;
                                trace(x)
                                newR = Math.pow(1/a, x-b)-dx;
                                me._rotation = objR+newR;
                        } else {
                                delete onEnterFrame;
                                me._rotation = objR
                        }
                };
        }
};

здесь кнопка but_1 и шесть объектов m1...m6 повернутых под 90 градусов...
по нажатии кнопки они должны плавно возвращаться к горизонтальному положению.....

но выполняется почему то только анимация последнего j....
но трейс (me._rotation) показывает повороты для всех j....

спасибо....

etc 01.08.2008 14:29

Ну у вас же не возникает вопросов, почему в этом коде трейс показывает 2, а не 1:

Код:

j = 1;
onEnterFrame = function() {
    trace(j);
}
j = 2;

Так ведь?

Forcasigun 01.08.2008 15:11

в этом не возникает....

но ведь у меня то j в цикле for, мне казалось, что в этом случае опреации для всех j должны производиться.... и сделать для каждого j onEnterFrame...

какой тогда выход из ситуации предлагаете?... (кроме все отдельно прописать)

etc 01.08.2008 15:35

Цитата:

Сообщение от Forcasigun (Сообщение 755756)
в этом не возникает....

но ведь у меня то j в цикле for, мне казалось, что в этом случае опреации для всех j должны производиться.... и сделать для каждого j onEnterFrame...

Мой код по логике абсолютно аналогичен вашему, поэтому никакого другого поведения не будет.

Цитата:

Сообщение от Forcasigun (Сообщение 755756)
какой тогда выход из ситуации предлагаете?... (кроме все отдельно прописать)

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

GreatRash 01.08.2008 15:42

Надо так писать:
Код:

me.onEnterFrame = rotate;

//...........................
// и потом уже вне цикла for
rotate = function() {
 тра ля ля;
}


Forcasigun 01.08.2008 15:43

спасибо.... будем разбираться...

Alex_beginner 03.08.2008 14:28

Вложений: 1
Цитата:

здесь кнопка but_1 и шесть объектов m1...m6 повернутых под 90 градусов...
по нажатии кнопки они должны плавно возвращаться к горизонтальному положению.....

но выполняется почему то только анимация последнего j....
но трейс (me._rotation) показывает повороты для всех j....

спасибо....
Код на _root:

Код:

but_1.onPress = function():Void
{
        this._parent.onEnterFrame = function():Void
        {
                for (var i:Number = 1; i<=6; i++)
                        {
                                this["mc"+i]._rotation+=1;
                                if (this["mc"+i]._rotation == 90)
                                {
                                        delete this.onEnterFrame;
                                }
                        }
        };
}


etc 03.08.2008 17:54

Цитата:

Сообщение от GreatRash (Сообщение 755771)
Надо так писать:
Код:

me.onEnterFrame = rotate;

//...........................
// и потом уже вне цикла for
rotate = function() {
 тра ля ля;
}


Вы суть проблемы поняли или нет?


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

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