PDA

Просмотр полной версии : нужно ли каждый раз вызывать OnEnterFrame


Smirnoff
06.09.2005, 14:45
Проблема такая:
Нужно, чтобы сначала прозрачность одного объекта уменьшилась, когда она становится равна 5 должна увеличиться прозрачность 2-го объекта, а когда она доходит до 95 должен начать двигаться 3-й.
Скритп такой:
=============================
ob_1.alpha=100
ob_2.alpha=0
ob_3._x=600

OnEnterFrame=function (){
ob_1.alpha-=1
}

if (ob_1.alpha=5){
OnEnterFrame=function (){
ob_2.alpha+=1
}
}

if (ob_2.alpha=95){
OnEnterFrame=function (){
ob_3._x-=1
}
}
==========================
Проблема в том, что при добавлении условий ролик воспроизводится
каждый раз быстрее.
Может проблема в вызове каждый раз OnEnterFrame ?
Подскажите пожалуйста ...
Просто до этого скрипт был расписан в одном длинющем условии (там еще штук 10 потом добавляется), потом я решил его раскидать ..
Вот теперь окончательно запутался ..

Leezard
06.09.2005, 16:01
На объект 1 вешаем:
this.onEnterFrame=function (){
this.alpha-=1;
if (this.alpha=5){
_root.ob_2.onEnterFrame=function (){
alpha+=1;
if (this.alpha=95){
_root.ob_3.onEnterFrame=function (){
this._x-=1;
}
delete this.onEnterFrame();
}
delete this.onEnterFrame();
}

Не уверен в синтаксисе, но принципиально работать будет.

Dimchansky
06.09.2005, 16:03
ob_1._alpha=100
ob_2._alpha=0
ob_3._x=600

ob_1.onEnterFrame=function (){
(this._alpha <= 5) ? this._alpha-- : ob_2.alpha++;
(ob_2._alpha >= 95) ? ob_3._x-- : ob_2._alpha--;
}

вроде так

Leezard
06.09.2005, 16:08
Ух ты а что это за запись, объясни пожалуйста
(this._alpha <= 5) ? this._alpha-- : ob_2.alpha++;

Dimchansky
06.09.2005, 16:09
Leezard, Smirnoff

не забудьте, что операция сравнения - это ==, а не =

Dimchansky
06.09.2005, 16:10
Leezard тернарная операция (условие) ? действие_1 : действие_2

если условие истинно, то выполняется действие_1 иначе действие_2

Dimchansky
06.09.2005, 16:20
сейчас только проверил :)

ob_1._alpha=100;
ob_2._alpha=0;
ob_3._x=10;

ob_1.onEnterFrame=function (){
(this._alpha >= 5) ? this._alpha-- : ob_2._alpha++;
(ob_2._alpha >= 95) ? ob_3._x-- : ob_2._alpha=ob_2._alpha;
}

Жень Шень
06.09.2005, 16:29
ой! и я свои 2954 байт вставлю!!!

Leezard
06.09.2005, 16:37
работает, выглядит компактно. ляпота.

Smirnoff
06.09.2005, 16:43
всем спасибо, кажется все понял ..
но назрел еще вопрос, выношу в новую тему ..