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

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

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

Регистрация: Apr 2009
Сообщений: 77
По умолчанию Как найти всех child определенного класса?

добрый день, почему то на новом проекте перестал работать метод которым раньше пользовался
Код AS1/AS2:
public function getChildrenByClass(class_name:Class):Vector.<DisplayObject>
		{
			var child:DisplayObject;
			var children:Vector.<DisplayObject> = new Vector.<DisplayObject>();
			for (var i:int = 0; i < numChildren; i++)
			{
				child = getChildAt(i);
				if (child is class_name)
					children.push(child);
			}
			return children;
		}
может как-то еще в as3 можно сравниать классы?

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

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Код AS3:
if (child.constructor == class_name)
					children.push(child);
Еще можно typeof, но он со строкой сравнивается
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
for each (var obj:DisplayObject in container) {
	if (obj is ClassName) 
		trace(obj);
}
__________________
тут я

Старый 15.02.2012, 13:26
il phoenix вне форума Посмотреть профиль Отправить личное сообщение для il phoenix Найти все сообщения от il phoenix
  № 4  
Ответить с цитированием
il phoenix

Регистрация: Apr 2009
Сообщений: 77
Genzo, child.constructor == class_name, не помогло =( а typeof же не работает нифига, для всех "object" возвращает, может я им пользоваться не умею? вызываю так typeof(child)

КорДум, ну да, я так и делаю

Старый 15.02.2012, 13:28
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 5  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
У вас эти классы вообще есть? Может вы используете везде MovieClip?
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Есть еще getQualifiedClassName()
__________________
тут я

Старый 15.02.2012, 13:33
il phoenix вне форума Посмотреть профиль Отправить личное сообщение для il phoenix Найти все сообщения от il phoenix
  № 7  
Ответить с цитированием
il phoenix

Регистрация: Apr 2009
Сообщений: 77
ага, есть, вот так вот выглядит:
Код AS1/AS2:
public function loadingShow():void
		{
			addChild( new LoadingControl());			
		}
 
		public function loadingHide():void
		{
			removeChildrenByClass(LoadingControl);
		}
loadingShow - работает
loadingHide - нет

Старый 15.02.2012, 13:35
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 8  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
так может ошибка в removeChildrenByClass?
__________________
http://www.chessmax.ru

Старый 15.02.2012, 13:37
il phoenix вне форума Посмотреть профиль Отправить личное сообщение для il phoenix Найти все сообщения от il phoenix
  № 9  
Ответить с цитированием
il phoenix

Регистрация: Apr 2009
Сообщений: 77
Цитата:
Сообщение от КорДум Посмотреть сообщение
Есть еще getQualifiedClassName()
о! спасибо! осталось понять как их class_name:Class вынуть полное название класса)

Добавлено через 2 минуты
Цитата:
Сообщение от Inet_PC Посмотреть сообщение
так может ошибка в removeChildrenByClass?
тьфу блин.. вот я балбес, в removeChildrenByClass(class_name:Class) вместо
Код AS1/AS2:
var children:Vector.<DisplayObject> = getChildrenByClass(class_name);
написал
Код AS1/AS2:
var children:Vector.<DisplayObject> = getChildrenByClass(Class);
всем спасибо, извиняюсь за беспокойство

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

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

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


 


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


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