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

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

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
По умолчанию После загрузки стороннего ролики, отображается копия основного

Салют!

Выручайте народ, ато я уже на плеер ругаться начинаю...
Суть такова: нужно загрузить внешний ресурс (либо битмапу, либо другой ролик). Использую Loader. Если гружу картинку, тогда все ок. Если же ролик (неважно какой), тогда чтото грузится, а потом отобразается мой же глваный ролик внутри себя (он же в свою очередь тоже начинает процесс загрузки).

Проверял что же грузится, используя URLLoader + Loader.loadBytes(). Судя по bytesTotal подгружается нужный мне ролик, но отображается все равно загрузчик. Тот же результат, если внедрять нужный ролик в загрузчик...

Чтобы показать суть происходящего более наглядно, я сделал тестовое предложение. Оно рисует себе полупрозрачный фон и начинает загрузку внешнего ролика. Лоадер сжимается до 90% чтобы было заметно, как выстраиваются ролики. Также делаю трейс всех родительских контейнеров лоадера, вплоть до сцены.

Прошу проверить мой ролик и отписаться о результатах. Может даже кто нибуть с таким сталкивался и знает в чем дело и что с этим делом делать...

Код AS3:
package {
	import flash.display.DisplayObjectContainer;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
 
	/**
	 * ...
	 * @author elder_Nosferatu
	 */
	public class Main extends Sprite {
		public function Main():void {
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			graphics.beginFill(0, 0.1);
			graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
			graphics.endFill();
 
			var ldr:Loader = new Loader();
			ldr.scaleX = ldr.scaleY = 0.9;
			addChild(ldr);
			ldr.load(new URLRequest("data.dat"));
			trace("trace");
 
			var parents:Array = [];
			var cont:DisplayObjectContainer = ldr;
			while (cont) {
				parents.push(cont.parent);
				cont = cont.parent;
			}
			trace(parents.join("->"));
		}
 
	}
 
}
Название: screen.PNG
Просмотров: 342

Размер: 6.8 Кб

Код:
trace
[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
trace
[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Loader]->[object Main]->[object Stage]->
...
Вложения
Тип файла: swf TestProj.swf (1.2 Кб, 19 просмотров)

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

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

Старый 12.07.2013, 09:30
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 3  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Скорее всего...
Но это не первый мой прелоадер, а главный класс у меня всегда Main.

Добавлено через 8 минут
Черт возьми! Вы были правы . У меня небыло никогда таких проблемм из за того, что все прелоадеры, которые я до этого делал делались во Флеше. А там у меня класс документа всегда совпадает с названием фла-файла (Index.swf).

Жаль что карму убрали. Вот такие замечания стоят больше чем развернутый ответ на тривиальный вопрос.
Большое спасибо!!!

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Для этих случаев есть такая фишка - ApplicationDomain.

Цитата:
Класс ApplicationDomain является контейнером для дискретных групп определений классов. Домены приложения используются для разделения классов в одном домене безопасности. Они обеспечивают возможность наличия нескольких определений одного класса и позволяют нижестоящим элементам многократно использовать определения вышестоящих элементов.
__________________
Дети не должны знать о своих родителях

Старый 13.07.2013, 03:10
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 5  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Беда в том, что пример сильно упрощен. На самом деле два ролика должны сидеть в одном ApplicationDomain. Я как бы и знал всю эту тему с перекрытием определений классов в одном домене, но... Знание еще не означает профессионализм.

Старый 13.07.2013, 13:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
А всего-то нужно было использовать пакет.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Случайно увидел, что название моего топика было изменено Я конечно не против, но...
Мое название было совсем не информативным. А новое стало дезинформирующим!
Судя по новому названию: Лоадер грузит ролик, а потом опять его грузит (судя по моему скриншоту - грузит безконечно).
Я же описывал ситуацию, когда после загрузки заказаного ролика Лоадер отображает не загруженый(!), а ВЫЗЫВАЮЩИЙ РОЛИК. Тоесть в Лоадере оказывается клон root-ового ролика, который повторяет ту же задачу. Такая себе рекурсия.
Ну а причина такого поведения была полностью раскрыта товарищами silin и Tails. Товарищ же iNils предложыл очень грамотное решение проблемы.

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Создать свою зону юрисдикций для подгружаемых роликов будет не менее грамотно. Я про ApplicationDomain.
__________________
Дети не должны знать о своих родителях

Старый 13.07.2013, 18:49
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 9  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Я имел ввиду, что для моего реального случая очень подходит вариант тов. iNils`а. В примере этого не видно, так как я оставил только суть проблемы.

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

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

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


 


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


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