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

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

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

Регистрация: Dec 2005
Адрес: Холодная Сибирь...
Сообщений: 268
Отправить сообщение для undeddy с помощью ICQ
По умолчанию События

Еесть несколько мувиклипов. Каждому из них присвоены 3 события (набор событий одинаков для кадого клипа). Ввиду отсутсвия даже средних знаний по флешу я делаю так: клип.событие = function(){}, отдельно для каждого клипа по три события. Получается громоздко (9 обработчиков). Как это можно сделать более компактно?

Старый 30.04.2007, 13:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
releaseHandler = function() {
    trace(this);
}
mc1.onRelease = releaseHandler;
mc2.onRelease = releaseHandler;
mc2.onRelease = releaseHandler;
Или в цикле.

Старый 30.04.2007, 14:51
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 3  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Я думаю можно и так:

Код:
mc1.onRelease = mc2.onRelease = mc2.onRelease = releaseHandler;

Старый 30.04.2007, 15:54
undeddy вне форума Посмотреть профиль Отправить личное сообщение для undeddy Найти все сообщения от undeddy
  № 4  
Ответить с цитированием
undeddy

Регистрация: Dec 2005
Адрес: Холодная Сибирь...
Сообщений: 268
Отправить сообщение для undeddy с помощью ICQ
Пробую через циклы. К примеру, вот:
Код:
for (j=1; j<4; j++) {

  eval('mc'+j).onRollOver = function() { //////тратата/////// }

}
Грамотен ли код?

Старый 30.04.2007, 15:58
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
for (var i = 0;i<4;i++) {
   var mc = this['mc'+i];
   mc.onRelease = function() {
      …
   }
   mc.onRollOver = function() {
      …
   }
   …
}
delete mc;

Старый 30.04.2007, 16:45
undeddy вне форума Посмотреть профиль Отправить личное сообщение для undeddy Найти все сообщения от undeddy
  № 6  
Ответить с цитированием
undeddy

Регистрация: Dec 2005
Адрес: Холодная Сибирь...
Сообщений: 268
Отправить сообщение для undeddy с помощью ICQ
Код:
for (var i = 0;i<4;i++) {
   var mc = this['mc'+i];
   mc.onRelease = function() {
      trace(i)   }
   mc.onRollOver = function() {
      …
   }
   …
}
delete mc;
Почему-то трассируется '4'. Почему же не трассируется последовательно '0, 1, 2, 3' ?

Старый 30.04.2007, 16:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
По-моему логично, разве нет? Цикл закончился, переменная приняла значение 4, его мы и трейсим.

Старый 30.04.2007, 17:04
undeddy вне форума Посмотреть профиль Отправить личное сообщение для undeddy Найти все сообщения от undeddy
  № 8  
Ответить с цитированием
undeddy

Регистрация: Dec 2005
Адрес: Холодная Сибирь...
Сообщений: 268
Отправить сообщение для undeddy с помощью ICQ
Дак цикл ведь повторяется 3 раза. почему трассируется только один раз? И ведь мы поставили условие i<4. Разве эта переменная может принять значение 4?

Старый 30.04.2007, 17:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цикл выполняется, пока переменная не примет значение 4. Она его приняла. Если бы не приняла, цикл был бы вечный.
Трейс будет при нажатии на клип мышкой.

Старый 30.04.2007, 17:23
undeddy вне форума Посмотреть профиль Отправить личное сообщение для undeddy Найти все сообщения от undeddy
  № 10  
Ответить с цитированием
undeddy

Регистрация: Dec 2005
Адрес: Холодная Сибирь...
Сообщений: 268
Отправить сообщение для undeddy с помощью ICQ
Окей. Но у меня в свзяи с этим возникает еще одна проблема:
Код:
for (var i = 0;i<4;i++) {
   var mc = this['mc'+i];
   mc.onRelease = function() {
      some_function(i)
   }
   mc.onRollOver = function() {
      …
   }
   …
}
delete mc;
При нажатии на мувиклип mc вызывается функция с параметром, равным i. Так для mc1 он должен быть 1, mc2 - 2 и т.д. Но выходит так, что параметр принимает сразу конечное значение i=4. А необходимо, чтобы для каждого мувика он был свой.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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