PDA

Просмотр полной версии : проблемы с onEnterFrame


hamstress
07.06.2006, 23:34
смысл моей задачи в следущем:
в цикле(от 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
Да ладна?:bye:
Ну тогда в принципе можно.
Только кода столько же в данном случаи напишешь, но вот итоговый файл будет весить чуть больше.
Кстати сам tween основан на использовании того же onEnterFrame.

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

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

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