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

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

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

Регистрация: May 2012
Сообщений: 10
Question Проверка существования класса

Много уже нарыл здесь...
Только не получаеса!

Значитса классы для звуков я определяю так:
Код AS3:
[Embed(source = "../../lib/Source/Battle/sound/1/1.mp3")] private var Bs_1_1_cls : Class;
[Embed(source = "../../lib/Source/Battle/sound/1/2.mp3")] private var Bs_1_2_cls : Class;
...
[Embed(source = "../../lib/Source/Battle/sound/2/1.mp3")] private var Bs_2_1_cls : Class;
[Embed(source = "../../lib/Source/Battle/sound/2/2.mp3")] private var Bs_2_2_cls : Class;
..
[Embed(source = "../../lib/Source/Battle/sound/n/1.mp3")] private var Bs_n_1_cls : Class;
[Embed(source = "../../lib/Source/Battle/sound/n/2.mp3")] private var Bs_n_2_cls : Class;
      ...[Embed(source = "../../lib/Source/Battle/sound/n/m-1.mp3")] private var Bs_n_m-1_cls : Class;
         [Embed(source = "../../lib/Source/Battle/sound/n/m.mp3")] private var Bs_n_m_cls : Class;
Затем для создания объектов на основе этих классов
Определяю массив
Код AS3:
public var SoundObj : Array = new Array();
Далее в коде хочу сослатся на эти классы и получить объекты в массиве!
Код AS3:
var RabArrSound : Array;	
for (i= 1; i <= n ; i++) {	
           if (this["Bs_" + String(i) + "_1_cls"]) {
		RabArrSound = new Array();
		SoundObj[i] = RabArrSound;
	}else{
		break;
	}	
	for (var j:int = 1; j <= m ; j++) {	
		 if (this["Bs_" + String(i) + "_" + String(j) + "_cls"]) {			 
			SoundObj[i][j] = new this["Bs_" + String(i) + "_" + String(j) + "_cls"]();
		}
	}
}
Для корректного обращения в ходе программы.


- m - для различных i могут быть разные; поэтому берется максимальное значение!
- (т.е. нужна проверка на существование классов(что и видно в коде))
- кроме того некоторые i - в классах могут отсутствовать (смотреть предвдущий пункт)

Выдает ошибку при обращении к несуществующему классу

Код AS3:
if (this["Bs_" + String(i) + "_1_cls"]) {
...
 if (this["Bs_" + String(i) + "_" + String(j) + "_cls"]) {
...
Какую проверку здесь можно использовать, чтобы не заморачиватся на наличие или отсутствие класса?


Пробовал:
ApplicationDomain.currentDomain.hasDefinition
Как здесь советовали:
http://www.flasher.ru/forum/showthre...=111716&page=2

Но на все запросы:
Код AS3:
ApplicationDomain.currentDomain.hasDefinition("Bs_" + String(i) + "_" + String(j) + "_cls")
Выдает false

try catch использовать не хочу...

Подскажите что в этом случае можно сделать...

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

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

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


 


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


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