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

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

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

Регистрация: Sep 2011
Сообщений: 366
По умолчанию Как узнать количество элементов с alpha =1

Есть спрайт PrivatePeopleSprite в него добавляются мувиклипы msg, некоторые из них становятся alpha=0 - невидимыми, как подсчитать количество видимых msg? Возможно ли это?

Код AS3:
var msg:msg = new msg;
PrivatePeopleSprite:Sprite;
PrivatePeopleSprite.addChild(msg);

Старый 29.08.2014, 18:17
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Рекурсивно обойти всех чилдов DOC PrivatePeopleSprite и проверить их альфу.

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

Регистрация: Feb 2012
Сообщений: 1,540
Код AS3:
var transparentMsgs:Array = [];
for(var i:int = 0; i < PrivatePeopleSprite.numChildren; i++) {
    var child:DisplayObject = PrivatePeopleSprite.getChildAt(i);
    if(child is msg && child.alpha == 0) {
        transparentMsgs.push(child);
    }
}
Результат: transparentMsgs

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
MikroAcse количество видимых, а у вас массив в результате.
numChildren постоянно теребить не очень хорошо, по крайней мере раньше было.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
var a:int = PrivatePeopleSprite.numChildren;
var numTransparent:int = 0;
for (var i:int = 0; i < a; i++) {
   if (PrivatePeopleSprite.getChildAt(i).alpha == 0) numTransparent++;
}
trace(numTransparent);
__________________
Ко мне можно и нужно обращаться на ты)

Старый 29.08.2014, 20:59
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 6  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Так ещё короче
Код AS3:
var length:int = 5
var count:int;
 
while(length-- > 0)
	if(PrivatePeopleSprite.getChildAt(length).alpha == 0)
		count++;

Старый 29.08.2014, 22:49
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
тогда уж
Код AS3:
var length:int = PrivatePeopleSprite.numChildren;
а в цикле вообще можно
Код AS3:
while(length--)
п.с. плохая практика писать без фигурных скобок. Так можно в один момент добавить туда код, который, казалось бы, должен выполняться, а он не будет. Можно ни один час голову поломать над поиском причин, особенно в большом проекте
__________________
Ко мне можно и нужно обращаться на ты)

Старый 29.08.2014, 23:38
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 8  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Цитата:
тогда уж
Точно!) Это я проверил в итерации свойство length и забыл вернуть numChildren.
Цитата:
п.с. плохая практика писать без фигурных скобок. Так можно в один момент добавить туда код, который, казалось бы, должен выполняться, а он не будет.
Это надо быть вообще невменяемым, чтобы видя такой код, добавить в него что-то так, что бы он не работал и ещё после этого несколько часов искать проблему
Лично я против скобок!

Старый 30.08.2014, 04:27
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Всем спать! Хорош бредни разводить все должно быть так, иначе это не учение :

Код AS3:
var msg:Msg = new Msg();
opa_ept: privatePeopleCLASSSUKA= new privatePeopleCLASSSUKA();
opa_ept.addChild(msg);
trace( opa_ept.alphaChildren )
__________________
Марк Tween

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Лично я против скобок!
Ну это пока. Не всё можно писать без скобок. А когда в коде в одних местах есть скобки, в других нет, это смотрится как бардак. Компилятор все равно скобки добавит
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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