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

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

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

Регистрация: Feb 2008
Сообщений: 5
По умолчанию Достучаться до свойств подгружаемой флешки

Делаю подгрузку внешнего swf-файла:

Код AS3:
public class program extends MovieClip {
 
	public static var loader:Loader
 
	public function program() 
	{
		loader = new Loader();
		var request:URLRequest = new URLRequest("path_to_file/auth.swf");
 
		loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onComplete);
		loader.load(request);
	}
 
	public function onComplete (e:Event)
	{
		stage.addChild(loader);
 
		var target:MovieClip = e.target.content as MovieClip;
		trace (target.testVar);
	}
}
Внешний ролик привязан к классу main.Auth, который выглядит следующим образом:

Код AS3:
public class Auth extends MovieClip {
 
	public var testVar:String = "aaa";
 
	public function Auth() {}
}
В случае, когда в подгружаемом файле нет никаких обьектов на сцене, а в библиотеке нет символов с пометкой "Экспорт для ActionScript", доступ к переменной testVar происходит нормально. Однако, если таковые имеются, выдается ошибка:

ReferenceError: Error #1069: Не удалось найти свойство testVar в main.Auth__Preloader__; отсутствует значение по умолчанию.
at program/onComplete()


При этом подгруженный ролик на сцену добавляется, но обратиться к его свойству не удается.
За ранее, спасибо за помощь!

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
main.Auth __Preloader__
Че за прелоадер? в нем же ищет testVar .... хм

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

Регистрация: Feb 2008
Сообщений: 5
in4core, это я понял...
Этот класс и еще ряд неизвестных классов генерируется при публикации, когда на сцене флешки есть какие-либо обьекты (через FlashDevelop смотрю список классов swf-файла). При этом нужного класса main.Auth там нет.

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

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

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

Регистрация: Feb 2008
Сообщений: 5
Опубликовал клип в 9 версии Flash Player (ранее публиковал в 10). Теперь все работает!
Что не так с 10 плеером?

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Соглашусь с in4core. Не соображаю практически ничего в FD, но складывается впечатление, что DocumentClass у loadee есть main::Auth __Preloader__, а во втором его кадре инстанцируется main::Auth и добавляется на сцену. Что-то типа выбранного шаблонного проекта "AS3 Project with Preloader".
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
dimarik а в чем ты пишешь если не в FD? Во FlexBilder чтоли ? не поверю если в IDE

Старый 02.03.2011, 10:48
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
@in4core, да, Flash/Flex Builder.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2011
Сообщений: 10
Хотелось бы поднять снова эту тему и до конца всё прояснить:

У меня ситуация аналогичная: есть родительский swf (Document class: Main), есть загружаемый swf (Document class: subMain).

Код аналогичный тому, что указан в первом посте. Работаю во Flash CS5

Вылетает ровно то же исключение. И появляется тоже не понятный _PRELOADER_.
В настройках проекта, меняю flash player с 10 на 9 -> всё работает.
Далее в настройках AS3 увидел пункт:

Preloader Method: Preloader SWF
Preloader SWF:$(AppConfig)/ActionScript 3.0/rsls/loader_animation.swf

Поменял Preloader Method на Custom preloader loop -> всё заработало в 10 flash player'е

Может кто-нибудь прояснить эту опцию?

Теперь второй момент: на скорую руку набросал два проекта с кодом ну совсем как в первом посте: фактически по 2 функции на каждый swf. Гружу один в другой, вызываю метод загруженного(или обращаюсь к его свойству) -> всё работает и с этими настройками, с которыми не работает сам проект. Отличие первого примера от второго только одно - в первом много экранных объектов на сцене, соответственно больший размер загружаемого файла, а во втором ничего нет.

Пожалуйста, объясните в чем магия

Добавлено через 1 час 31 минуту
Да, и еще хотел дописать, что если в настройках всё того же AS3 выставить
Default linkage: merged in code вместо Runtime Shared Library тоже всё работает

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

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

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


 


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


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