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

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

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

Регистрация: Jul 2011
Сообщений: 79
По умолчанию Вопрос про Preloader

Здравствуйте.

Я никак не могу понять как правильно приделать прелоадер.

Проблема в том что мои классы подключаются к main отдельно.

ТО есть у меня в main происходит следующее

Код AS3:
public class Main extends Sprite	
	{
	 [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; 
	 private var sc:Scene;
		public function Main()
		{
	var file:ByteArray = ((new EmbedModel()) as ByteArray);
			var str:String = file.readUTFBytes( file.length );
			var xml:XML = new XML( str );
			sc = new Scene(xml);
			stage.addChild(sc);
Соответственно мне нужно прелоадер(метатег Frame) добавлять в класс сцена.
То есть мне нужно сделать свой класс Preloader extends Movieclip в котором будет вызываться класс сцена?А что мне тогда делать с main?

Мне нужно чтобы прелоадер дождался пока все 3D объекты добавятся на сцену(они добавляются в классе сцена).Как мне нужно всё это дело организовать?

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
А вот запятые стройным рядом: ", , , , ". Берите, мне не жалко!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Посмотрите предыдущее темы в этой ветке, недавно поднимался вопрос.
Или посмотрите как организован проект со встроенным preloader'ом во FlashDevelop.
__________________
местонахождение

Старый 06.08.2011, 01:15
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 4  
Ответить с цитированием
savva

Регистрация: Jul 2011
Сообщений: 79
Там прелоадер прикручивается к main проекту. А мне нужно чтобы мои классы были отдельны, то бишь кто-либо в main пишет
Код AS3:
sc = new Scene(xml);
И там, внутри, в классе scene появлялся загрузчик (кстати, я не понимаю как он (загрузчик) понимает, что сцена загрузилась и её нужно только показать), который показывал, что сцена загрузилась на "10%" и т.д.

Извините за пунктуацию,никогда не был силён в ней


Последний раз редактировалось dimarik; 06.08.2011 в 01:32.
Старый 06.08.2011, 01:16
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Уже лучше. Чуть поправил. Но все равно звучит угрожающе.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 06.08.2011 в 01:19.
Старый 06.08.2011, 01:23
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 6  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
А что такое 'Scene' и почему загрузчик должен быть в этом классе?
Объясните смысл вашей "работы", как-то более понятно.
__________________
местонахождение

Старый 06.08.2011, 01:34
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 7  
Ответить с цитированием
savva

Регистрация: Jul 2011
Сообщений: 79
Разрабатываю набор классов, для отрисовки произвольной 3D сцены исходя из данных полученных по XML файлу.По задумке, человеку использующему мои классы, требуется лишь сделать Embed Xml файла в Main и передать XML файл в сцену.А дальше мои классы сами уже производят разбор XML, добавление объектов(2D и 3D), прикручивают слушатели мыши и клавы.
Соответственно хочется добавить ко всему этому прелоадер сцены,поскольку 2D объекты отображаются почти моментально, а 3D объекты с задержкой (весомой задержкой).

Итог: хочу,чтобы сначала произвелась полная загрузка сцены (всех объектов 2D и 3D) и лишь потом они появились. А пока идёт загрузка просто висела по центру экрана какая-нибудь инфа о степени готовности загрузки.

Вопрос как это притворить в жизнь?

И ещё вопрос такой
можно ли из
Код AS3:
public class Main extends Sprite	
	{
	 [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; 
	 private var sc:Scene;
		public function Main()
		{
	var file:ByteArray = ((new EmbedModel()) as ByteArray);
			var str:String = file.readUTFBytes( file.length );
			var xml:XML = new XML( str );
			sc = new Scene(xml);
			stage.addChild(sc);
Вытащить
Код AS3:
var file:ByteArray = ((new EmbedModel()) as ByteArray);
			var str:String = file.readUTFBytes( file.length );
			var xml:XML = new XML( str );
И закинуть в класс сцену,а в main делать так:
Код AS3:
 [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; 
	 private var sc:Scene;
		public function Main()
		{
			sc = new Scene(new EmbedModel());
			stage.addChild(sc);
Если да то какой параметр указывать в конструкторе класса сцены?


Последний раз редактировалось savva; 06.08.2011 в 01:38.
Старый 06.08.2011, 01:44
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 8  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Загрузка, по логике, это когда, что-то грузится, у Вас, я так понимаю, ничего не грузится.
Как вариант, если я Вас правильно понял. При начале построения, как только получаете заветный xml, выдайте пользователю сообщение о начале инициализации объектов, дождитесь завершения, убери сообщение, показывайте созданное.

насчет "вытащить", с чем работает Ваш основной класс, с какими данными?
__________________
местонахождение

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
savva, откровенно говоря, лучше создавать такие темы в соответствующем разделе.

Никто не говорит "набор классы".
Обычно вставляют запятые.
А теперь поразите меня своей идеей, тем что еще не было на flasher.ru
XML как источник данных -- это настолько набило оскомину, что скучно. Вы хотели предложить что-то новое?
MVC не пробовали на вкус?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 06.08.2011, 02:27
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 10  
Ответить с цитированием
savva

Регистрация: Jul 2011
Сообщений: 79
2 СлаваRa
Я имел ввиду создание и парсирование объектов(в xml находятся url адреса моделей 3DS Max, которые парсируются соответствующими методами).

А какой event я должен слушать,чтобы понять что все объекты созданы и уже готовы к выводу на сцену?

на данный момент происходит вот так:
Код AS3:
	//Инициализация сцены
		private function Init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage3D = stage.stage3Ds[0];
			stage3D.addEventListener(Event.CONTEXT3D_CREATE, OnContextCreate);
			stage3D.requestContext3D();
		}
		//конструктор сцены параметр xml
		public function Scene (_xml:XML) {
			myxml = _xml;
			addEventListener(Event.ADDED_TO_STAGE, Init);
		}
Хочется чтобы из класс Main (смотри выше ) были удалены следующие строки
Код AS3:
var file:ByteArray = ((new EmbedModel()) as ByteArray);
			var str:String = file.readUTFBytes( file.length );
			var xml:XML = new XML( str );
И вставлены в класс Scene.
А в Main выполнялось следующее:
Код AS3:
 [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; 
	 private var sc:Scene;
		public function Main()
		{
			sc = new Scene(new EmbedModel());
			stage.addChild(sc);
2 Dimarik.
Я как перечитал сразу исправил.Я стараюсь использовать пунктуацию.
Я не собирался кого-либо поражать.

Сейчас собственно и пробую. В классе Scene находятся все объекты,также этот класс отвечает за визуализацию.Есть класс scenecontroller.

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

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

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


 


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


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