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

Волгоградец 24.09.2007 16:55

Вопрос про функции
 
Привет. Извините за ламерский вопрос. Допустим, есть два клипа - оба движутся, но с разной скоростью:
Код:

mc_1.onEnterFrame = function (){
  this._x += 5;
  if (this._currentframe == this._totalframes) this.stop ();
  delete this.onEnterFrame;
}

mc_2.onEnterFrame = function (){
  this._x += 10;
  if (this._currentframe == this._totalframes) this.stop ();
  delete this.onEnterFrame;
}

Вопрос: вот две одинаковые функции - разное только изменение скорости и название клипов. Как мне написать ее один раз, а потом просто вызвать для каждого клипа? Спасибо!

Мыкыта 24.09.2007 17:06

вводим атрибут speed и при вызове прописываем атрибут =))

Код:

function myFunc (speed, my_mov:MovieClip){
  my_mov._x += speed;
  if (my_mov._currentframe == my_mov._totalframes) my_mov.stop ();
  delete my_mov.onEnterFrame;
}

вызываем

this.onEnterFrame = function() {
myFunc(5, this);
}


Волгоградец 24.09.2007 17:28

Ясно. Т.е. в скобках прописываем те переменные, которые меняются. Спасибо!!!

CrazyFlasher 24.09.2007 17:35

те, которые не меняются - не переменные, а константы ;-)

udaaff 24.09.2007 21:58

Можно так:
Код:

mc_1.onEnterFrame = genFunc(5)
mc_2.onEnterFrame = genFunc(10)

function genFunc(velocity){
        return function () {
                this._x += velocity;
                if (this._currentframe == this._totalframes) this.stop ();
                delete this.onEnterFrame;
        }
}



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

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