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

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

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

Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
По умолчанию Помогите разобраться с погрузкой объектов из swc

Вообщем хочу сделать галерею из классов swc, тобиш в библиотеки имеются: картинки с определенными именами типа pic_0_0, pic_0_1 и pic_1_0 и т д, далее при загрузке основного приложения я проверяю pic_0_0 если существует то наполняем галереи где pic_0,1,2.. это чекбокс доступных галерей библиотеки, а pic_0_0,1,2,3.. сама галерея.
Тобиш нужна функция что то типа:

/// Это рабочая функция, но ручками переписывать все классы из swc лень))
var mov:*=novaObj("movi1");
function novaObj(str:String):*{
if(str=="movi1")return movi1();
return null;
}
///А нужно
function novaObj(str:String):*{
if(Есть ли такой класс с текстовым именем str в библиотеки swc??)return отдаем класс с именем str??;
return null;
}
Знаю что есть
getDefinitionByName("Pic_0_0")// но увы не работает, с swc, возможно нужно писать "flash.display.Pic_0_0" но точно не знаю как должна выглядеть строчка.
Помогите.
Скидываю архив в папке lib есть bazGraf.swc в нем два примитива Pic_0_0, Pic_0_1, в классе Glaf.as все мои тыкания по этому поводу.))
http://www.flasher.ru/forum/attachme...1&d=1313919949
Вложения
Тип файла: rar game3D.rar (77.1 Кб, 64 просмотров)

Старый 21.08.2011, 14:47
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Воспользуйтесь тегами оформления

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
getDefinitionByName в этом раскладе не работает, потому что swc подключена как library( включаются только классы, на которые есть ссылки)
если подключить(options.. по правой кнопке на swc) как include-library (включаются все классы), то все будет
Код AS3:
private function getObjByClassName(value:String):Object
{
	try
	{
		return new (getDefinitionByName(value) as Class)();
	}
	catch (err:Error){}
	return null;
}

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
http://www.free-lance.ru/blogs/view.php?tr=654745&b=all
что-то мне это напоминает )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 21.08.2011, 23:34
vorodis2 вне форума Посмотреть профиль Отправить личное сообщение для vorodis2 Найти все сообщения от vorodis2
  № 5  
Ответить с цитированием
vorodis2

Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
//cleptoman я на этом форуме одно слово подправил)) Больше вариантов решения.
Решил брать инфу из swf, а уже ближе к релизу переписать все нужные классы.
Собственно как это делать, авось кому пригодиться))
Код AS3:
var ldr:Loader= new Loader();
			ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,skinHandler);
			ldr.load(new URLRequest("bazGraf.swf"));
			function skinHandler(evnt:Event):void {					
				trace(loaderInfo.applicationDomain.hasDefinition("Pic_0_0"));//Существует
				trace(loaderInfo.applicationDomain.hasDefinition("Pic_0_2"));//Отсутствует в либе
				var loaderInfo:LoaderInfo = evnt.target as LoaderInfo;				
				var motoFontInfoClass:Class = loaderInfo.applicationDomain.getDefinition("Pic_0_0") as Class;
				var instance:Object = new motoFontInfoClass();
				addChild(instance);
			}
silin /*если подключить(options.. по правой кнопке на swc) как include-library (включаются все классы)*/
Я не совсем понял, как это сделать?

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
после того как поставишь для swc галку add to library, кликни на нем правой кнопкой еще раз - увидишь пункт options, там поставь как надо

Старый 22.08.2011, 00:03
vorodis2 вне форума Посмотреть профиль Отправить личное сообщение для vorodis2 Найти все сообщения от vorodis2
  № 7  
Ответить с цитированием
vorodis2

Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
Разобрался, пять минут в cs5 тыкал по экспорт в swc))).
Смог выдрать из swc нужную инфу
Но я так и не понял как можно глянуть а существует ли класс с именем "pic_not_v_swc" в библиотеки swc, все попутки проверить несуществующий класс приводят к вылету флеша((

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
упс, я про FD, в архиве же FD-шный проект, не?
к слову, FD содержимое swc показывает
по cs5 не могу сказать, нету

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

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

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


 


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


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