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

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

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

Регистрация: Nov 2009
Сообщений: 20
По умолчанию array.foreach

Добрый вечер

есть вот такой код

Код AS3:
 
 var b:Array = new Array ();
			b[0] = MovieClip(parent).bozament;
			b[1] = MovieClip(parent).leister;
			b[2] = MovieClip(parent).seion;
			b[3] = MovieClip(parent).protan;
 
			addEventListener (MouseEvent.MOUSE_DOWN, run)
 
			function run (e:MouseEvent)
			{
 
				b.forEach(showThem)
 
				function showThem ()
				{
					alpha = 0;
				}
 
				e.target.alpha = 100;
			}
Проблема в том, что при щелчке на одном из мувиклипов forEach проганяется не для всех, а 4 раза для e.target функции run.
Не подскажите как изменить чтобы для всех проганялся?

Хочу чтобы при щелчке на одному мувике другие гасли.

Старый 18.11.2009, 03:48
dmitriev вне форума Посмотреть профиль Отправить личное сообщение для dmitriev Найти все сообщения от dmitriev
  № 2  
Ответить с цитированием
dmitriev
 
Аватар для dmitriev

Регистрация: Jun 2007
Адрес: Челябинск
Сообщений: 303
Отправить сообщение для dmitriev с помощью ICQ
Код:
for each(var item in b) {
     item.alpha = 0;
}
Возможно это поможет на первое время, но продолжив писать в кадрах, обязательно наткнётесь на кучу ошибок.
__________________
O God! The Aftermath.

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
В качестве аттрибута метода showThem должен выступать элемент массива.

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
может как-то так?
Код AS3:
function showThem (item:Object)
{
	item.alpha = 0;
}
__________________
я могу стать всем, если только захочу

Старый 18.11.2009, 09:30
ToRR вне форума Посмотреть профиль Отправить личное сообщение для ToRR Найти все сообщения от ToRR
  № 5  
Ответить с цитированием
ToRR

Регистрация: Feb 2007
Сообщений: 63
тогда уж
Код AS3:
function showThem (item:Object)
{
	(item as DisplayObject).alpha = 0;
}

Старый 18.11.2009, 10:32
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
1. кроме как ради красивостей нет никакого смысла использовать Array.forEach(), Array.filter(), Array.map() и т.п... просто цикл будет быстрее.
2. Подпись у функции передаваемой в параметре выглядид на самом деле так:
Код AS3:
function foo(item:*, index:int, all:Array):void
3. Не используйте анонимные функции. Никогда.

Код AS3:
var array:Array = [1, 2, 3];
array.forEach(foo);
function foo(item:int, index:int, all:Array):void
{
	trace(item, index, all);
}
/*
1 0 1,2,3
2 1 1,2,3
3 2 1,2,3
*/
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 18.11.2009 в 10:35.
Старый 18.11.2009, 13:59
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 7  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Цитата:
Сообщение от wvxvw Посмотреть сообщение
1. кроме как ради красивостей нет никакого смысла использовать Array.forEach(), Array.filter(), Array.map() и т.п... просто цикл будет быстрее.
В дополнение, быстрее будет засчёт того, что не будет вызываться функция с достаточно большим количеством аргументов.
Т.е. все нативные методы, всех классов флеша(кроме как Rectangle), работают если не хуже, то точно не лучше развёрнутого руками цикла.

Старый 18.11.2009, 15:06
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>все нативные методы, всех классов флеша(кроме как Rectangle), работают если не хуже, то точно не лучше развёрнутого руками цикла.

сомнительное утверждение: с чего бы нативная реализация должна быть медленнее скриптовой ?

Старый 18.11.2009, 16:58
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 9  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Цитата:
Сообщение от silin Посмотреть сообщение
сомнительное утверждение: с чего бы нативная реализация должна быть медленнее скриптовой ?
Боюсь что этот вопрос не ко мне, знаю лишь, что методы и классы(с которыми я сталкивался) работают медленнее собственной реализации, только лишь Rectangle - написан отлично, инициализируется быстрее(раза в два) чем кастомный класс с соответствующими публичными полями, работа методов у него также быстрее.

Могу предположить что Rectangle обёртка настоящего нативного класса, ибо он часто встречается в бинарнике самого swf(вот это конечно сомнительное утверждение), т.е. эдобовцев не заломало нам его дать, а все остальные классы,методы, как мне кажется скриптоложество в собственном соку, во всяком случае тесты говорят об этом.

Старый 18.11.2009, 17:07
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если есть такие наблюдения, то покажи примеры где это действительно так (своя реализация быстрее нативной)
интересно было бы пощупать

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

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

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


 


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


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