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

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

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

Регистрация: Jun 2010
Сообщений: 97
По умолчанию Почему неработает цикл?

Приветствую, подскажите почему не работает цикл?

Есть 9 мувиков на сцене, при наведении на любой, он должен стать прозрачнее, при убирании курсора снова стать непрозрачным. Мувикам присвоены имена а1,а2,а3 и тд.

Код AS3:
for (var i:int = 1; i <= 9; i++){
 
         this["a" + i].addEventListener(MouseEvent.MOUSE_OVER, over);
         this["a" + i].addEventListener(MouseEvent.MOUSE_OUT, out);
 
	 function over (e:MouseEvent):void{this.alpha = 0.3;}
         function out (e:MouseEvent):void{this.alpha = 1;}
}

Старый 16.01.2011, 01:46
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Не пишите в кадрах.
Код AS3:
var i:int;
for (var i:int = 1; i <= 9; i++) {
	var a:MovieClip = getChildByName("a" + i) as MovieClip;
	a.addEventListener(MouseEvent.MOUSE_OVER, over);
	a.addEventListener(MouseEvent.MOUSE_OUT, out);
}
 
function over (e:MouseEvent):void {
	(e.currentTarget as MovieClip).alpha = .3;
}
 
function out (e:MouseEvent):void { 
	(e.currentTarget as MovieClip).alpha = 1;
}
__________________
тут я


Последний раз редактировалось КорДум; 16.01.2011 в 02:06.
Старый 16.01.2011, 04:29
U4enik вне форума Посмотреть профиль Отправить личное сообщение для U4enik Найти все сообщения от U4enik
  № 3  
Ответить с цитированием
U4enik

Регистрация: Jun 2010
Сообщений: 97
Я писал в первом кадре. А за подсказку спасибо, работает. Буду разбираться с примером.

Старый 16.01.2011, 11:28
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Да в чем тут разбираться? Все просто.
Здесь:
Код AS3:
 
for (var i:int = 1; i <= 9; i++){
 
         this["a" + i].addEventListener(MouseEvent.MOUSE_OVER, over);
         this["a" + i].addEventListener(MouseEvent.MOUSE_OUT, out);
 
         function over (e:MouseEvent):void{this.alpha = 0.3;}
         function out (e:MouseEvent):void{this.alpha = 1;}
}
Функции исчезают по завершении цикла

КорДум вынес их за пределы цикла

Старый 16.01.2011, 11:56
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Функции исчезают по завершении цикла
Они не исчезают, а плодятся при каждой итерации цикла, а не работают потому, что альфа меняется не у детишек, а у контейнера.

Старый 16.01.2011, 12:53
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
AS2шная область видимости.)
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 16.01.2011, 13:43
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
AS2шная область видимости.)
Код в кадре, так что AS1

this["a" + i] - так топикстартер ломится к свойству главного класса (после сборки swf все это же склеивается в один большой класс, верно?)
А еще я сделал код красивым
__________________
тут я

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

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

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


 


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


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