Показать сообщение отдельно
Старый 21.06.2012, 20:05
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да, так происходит, потому что в конце цикла с2 принимает последнее значение и оно же везде и будет использоваться.
Вот решение:

Код AS1/AS2:
for (var c2 = 2; c2 <= 25; c2++) 
{
	var btn:MovieClip = _root.cam2["e" + c2]; //ссылка на кнопку для удобства записи
	btn.num = c2; //"запоминаем" номер внутри  кнопки
	//функции на события назначаем по ссылке на именованные функции:
	btn.onRollOver = mykOnRollover; 
	btn.onRollOut = mykOnRollout;
}
 
function mykOnRollover() 
{
	var num:Number = this.num; //"вспоминаем" номер
	_root.cam2["e" + num]._alpha = _root["cam2"]["l" + num]._alpha = max_transparancy;
}
 
function mykOnRollout() 
{
	var num:Number = this.num; //"вспоминаем" номер
	_root.cam2["e" + num]._alpha = _root.cam2["l" + num]._alpha = min_transparancy;
}
1. Не склеивайте операторы, ставьте пробелы. Это не круто на самом деле. Только читать и править код неудобно. Пользы никакой - компилятор потом все равно сделает как ему удобнее.
2. Названия функций не делайте с заглавной, с заглавной обычно идут названия классов.

И еще, если я верно определил, то внутри функции при задании действий на кнопку вы опять ссылаетесь на нее саму. Поэтому можно записать так, с использованием относительных путей:
Код AS1/AS2:
this._alpha = this._parent["l" + num]._alpha = max_transparancy;
this._parent - в данном случае это ссылка на родительский мувик _root.cam2 из мувика _root.cam2["e" + num]

Код функций станет гибче и не будет зависеть от имени.
__________________
Идите первым!


Последний раз редактировалось mooncar; 21.06.2012 в 20:30.