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

hamstress 07.06.2006 23:34

проблемы с onEnterFrame
 
смысл моей задачи в следущем:
в цикле(от 1 до 3) прикрепляю на сцену первый клип при помощи attachMovie, затем для него же в цикле onEnterFrame = function() увеличиваю его длинну до определённого параметра, после того как увеличила до нужного, атачу следущий клип и так далее

проблема в следущем: тресом выяснилось, что сначала атачаться всё три клипа, после чего скрипт заходит в onEnterFrame и там индекс цикла равен 4(хотя должно быть от 1 до 3)

подскажите как иправить проблему или другой способ решить задачу

iNils 08.06.2006 00:17

Выложи свой скрипт, мы поправим.

hamstress 08.06.2006 00:35

Код:

function Scale_v_line() {
        for (i = 1; i <= 3; i++) {
                _root.Mainbox.attachMovie("v_line", "v_line" + i, this.getNextHighestDepth() + i);
                trace("i1 = " + i);
                _root.Mainbox.onEnterFrame = function() {
                        trace("i2 = " + i);
                        if (_root.Mainbox["v_line" + i]._height < 25) {
                                _root.Mainbox["v_line" + i]._height++;
                        }else{
                                          delete _root.Mainbox.onEnterFrame;
                                  }
                };
        }
}

сейчас по трейсам выдаёт
i1=1
i1=2
i1=3
(то есть атачит подрят 3 мувика)
i2=4 и так далее до конца параметра пока не будет delete _root.Mainbox.onEnterFrame

а должно быть
i1=1
i2=1
i1=2
i2=2
i1=3
i2=3

alkonaft 08.06.2006 00:46

У меня челюсть отпала...
Как на аватаре.
Как я понял onEnterFrame тебе для изменения высоты, а почему не юзать класс tween?

iNils 08.06.2006 00:54

Код:

_root.Mainbox.scale_v_line = function (i) {
        this.attachMovie ("v_line", "v_line" + i, this.getNextHighestDepth () + i, {_x:i * 120});
        this.i = i;
        this["v_line" + i].onEnterFrame = function () {
                if (this._height < 25) {
                        this._height++;
                } else {
                        delete this.onEnterFrame;
                        if (this._parent.i < 3) {
                                this._parent.scale_v_line (++this._parent.i);
                        }
                }
        };
};
_root.Mainbox.scale_v_line (1);

2 alkonaft: хотябы потому что не у всех еще стоит плеер 8.

alkonaft 08.06.2006 01:00

Цитата:

2 alkonaft: хотябы потому что не у всех еще стоит плеер 8.
Цитата:

Tween.onMotionFinished
Availability
Flash Player 6 (6.0.79.0).

Edition
Flash MX 2004.

Usage
Да ладна?:bye:

iNils 08.06.2006 01:16

Цитата:

Сообщение от alkonaft
Да ладна?:bye:

Ну тогда в принципе можно.
Только кода столько же в данном случаи напишешь, но вот итоговый файл будет весить чуть больше.
Кстати сам tween основан на использовании того же onEnterFrame.

alkonaft 08.06.2006 01:19

Цитата:

Сообщение от iNils
Ну тогда в принципе можно.
Только кода столько же в данном случаи напишешь, но вот итоговый файл будет весить чуть больше.
Кстати сам tween основан на использовании того же onEnterFrame.

Ну почему, тамже скорость можно менять, и более точные параметры, не говоря о эрайзе и событиях...

iNils 08.06.2006 01:29

Цитата:

Сообщение от alkonaft
Ну почему, тамже скорость можно менять, и более точные параметры, не говоря о эрайзе и событиях...

В данном вопросе роли это не играет.
Но если тебе так хочется, напиши пример и выкладывай сюда :) А то говорить все мастера :)

hamstress 08.06.2006 15:56

Спасибо за ответ и по моему коду, и по Tween. Век живи - век учись!
рассмотрю оба варианта :)


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

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