Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.09.2007, 16:55
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 1  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
По умолчанию Вопрос про функции

Привет. Извините за ламерский вопрос. Допустим, есть два клипа - оба движутся, но с разной скоростью:
Код:
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
Мыкыта вне форума Посмотреть профиль Отправить личное сообщение для Мыкыта Найти все сообщения от Мыкыта
  № 2  
Ответить с цитированием
Мыкыта

Регистрация: Mar 2003
Адрес: Россия, Санкт-Петербург
Сообщений: 565
вводим атрибут 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:09.
Старый 24.09.2007, 17:28
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 3  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Ясно. Т.е. в скобках прописываем те переменные, которые меняются. Спасибо!!!

Старый 24.09.2007, 17:35
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 4  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
те, которые не меняются - не переменные, а константы ;-)
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 24.09.2007, 21:58
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Можно так:
Код:
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, время: 10:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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