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

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

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

Регистрация: Sep 2010
Сообщений: 90
По умолчанию Доступ к изображениям подгружаемого SWF

Сделал в Victorio Giotto swf, в библиотеке которого хранятся изображения. Для каждого выставлены Export for AS, Export in frame 1 и установлено имя, соответствующее имени в библиотеке. Подгружаю эту (content.swf) флешку, она трейсится ([object ApplicationDomain]), но при обращении к изображению через getDefinition получаю null.
Обращаюсь так:
Код AS3:
Dummy.content.getDefinition("Base");
 
//пробовал и так
Dummy.content.getDefinition("content.Base");
Как мне получить доступ к какому-либо изображению из этого content.swf?

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
В лоадере укажите new LoaderContext(false,ApplicationDomain.currentDomain,null)
Попробуйте добавить из библиотеки на сцену и задать инстанс нейм "Base".
__________________
In Code We Trust

Старый 04.11.2012, 19:23
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 3  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
Тот же эффект. Пробовал и в мувик сконверитровать и на сцену инстансом выкладывал - ничего. hasDefinition возвращает false.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Полный код подгрузки приведите.
__________________
In Code We Trust

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

Регистрация: Sep 2010
Сообщений: 90
Код AS3:
                public function UI() 
                {
			_libLoader = new Loader();
			_libLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteHandler);
			_libLoader.load(new URLRequest("../src/content.swf"), new LoaderContext(false,ApplicationDomain.currentDomain,null));
		}
 
		private function loadCompleteHandler(event:Event):void
		{
			Dummy.content = _libLoader.contentLoaderInfo.applicationDomain;
 
			if (stage) Added();
			else addEventListener(Event.ADDED_TO_STAGE, Added);
		}
 
		private function Added(e:Event=null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, Added);
			trace(Dummy.content.hasDefinition("Base"))
                }

Старый 04.11.2012, 21:43
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 6  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Запутанно как-то. Обычно сначала ADDED_TO_STAGE, а потом все остальное. Какие-то Dummy, какие-то Victorio Giotto

Можете целиком поместить загруженную флэшку на сцену, что-то вроде
Код AS3:
mc:DisplayObject = (event.target as LoaderInfo).content as DisplayObject;
addChild(mc);
Чтобы проверить работоспособность лоадера.
__________________
In Code We Trust

Старый 04.11.2012, 21:52
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 7  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
Victorian Giotto использую, чтобы не ставить Adobe Flash, потому как не работаю с ним, а для одной конкретной ситуации геморно. А added делаю после, потому как должен быть уверен, что флешка с изображениями загрузилась раньше, чем начнет исполнятся код. В принципе, added_to_stage там уже не нужен, это просто скопированный шаблон из конструктора, я пока рассматривал этот способ подгрузки как вариант)

на "mc : DisplayObject = (event.target as LoaderInfo).content as DisplayObject" получаю: "Implicit coercion of a value of type flash.display: DisplayObject to an unrelated type Class."


Последний раз редактировалось HorusWM; 04.11.2012 в 22:03.
Старый 05.11.2012, 03:02
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 8  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Как вариант , можно в той флешке рисунок заEmbed'ить, и каким-то методом скидывать её
Код AS3:
[Embed(".../image.jpg")] 
public static var imgClass:Class;
......
public function getImage():Bitmap {
    var bmp:Bitmap = new imgClass;
    return bmp;
}
Ну а то что вам выдаёт null при getDefinition, я подозреваю это потому что у вас в основном проекте (куда флешка подгружается) нету класса Base, и не получается кастовать. Если у вас основной проект рядом с проектом подгружаемой свф, import'ните класс Base, если нет, напишите интерфейс и через него передавайте что вам надо, вплоть до самого класса Base (или попробуйте просто скопипастить класс Base, хотя это наверное не хорошая практика, что ли )

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

Регистрация: Sep 2010
Сообщений: 90
Все упирается именно в то, что ембединг мне не подходит, так бы и не заморачивался Нужно, чтобы обязательно для каждой картинки стояли галочки экспорта для ас, в первый фрейм и указан идентификатор - swf в дальнейшем ребята, с которыми я работаю, используют в UDK, а он без этой магии не находит изображения, даже если их ембедить. Видимо, придется все же делать эту дратату в адобе.

Старый 05.11.2012, 03:38
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 10  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Ну в подгружаемом проекте, вы же можете засунуть изображение в переменную ? И если вы его экспортировали для ас, вроде для рисунка создаётся класс, и тогда как я выше написал, можно будет его передать через интерфейс/класс?


Последний раз редактировалось AlexLucas; 05.11.2012 в 13:48.
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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