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

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

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

Регистрация: Nov 2013
Сообщений: 14
По умолчанию Внешний или внутренний прелоадер

Вобщем, такой вопрос. А стоит ли вообще заморачиваться с встроенным прелоадером? Может вполне достаточно сделать 2 свф файла и грузить 1 с 2? Кто выставлял игры на продажу, какие требования там именно к прелоадерам?

Старый 13.06.2014, 16:07
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
1. Как правило хотят один файл, а значит придется использовать таки внутренний прелоадер.
2. А какие такие "заморочки" с внутренним прелоадером имеются в виду?!
__________________
Поймай яблоко 2!

Старый 13.06.2014, 16:33
Wells77 вне форума Посмотреть профиль Отправить личное сообщение для Wells77 Найти все сообщения от Wells77
  № 3  
Ответить с цитированием
Wells77

Регистрация: Nov 2013
Сообщений: 14
Которую неделю мучаюсь сделать внутренний прелоадер в таком проекте (Проект Flash Builder 4.7 на основе fla). Делая все как в статьях с аргументами -frame "start" Main, в итоге при компиляции в флеше и имитации загрузки (CS6) всеравно прелоадер начинает работать только когда весь контент загрузится. Статьи все описаны для прелоадера скомпилированого чисто в ФБ (то-есть используя проект ActionScript Project), но у меня ж fla привязано еще, и я не выношу несколько десятков мувиков в swc, ибо нада так каждому мувику класс прописывать, а в проекте с фла без этого обойтись можна и кода меньше. Вобщем что делаю не так? Можна реально сделать встроенный прелоадер в проекте на основе fla, или все-же придется fla использовать чисто для графики с последствующим импортом в библиотеку swc и компилить уже чисто в билдере без IDE? Очень прошу помощи, ибо крыша начинает ехать уже

Добавлено через 8 минут
Смотрел пример с иностранного сайта проекта сделаного чисто в Билдере 4.7 (ActionScript Project), но с привязкой swc графики с классами. Так вот там все работает c аргументом -frame "start" Main. Попробовал все это прикрутить в свой проект и вот что получилось:
1. Структура такая - Main.as, Preloader.as, Main.fla.
Код Main.as:
Код AS1/AS2:
package {
 
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.system.fscommand;
 
	import Data.CLASSES.LEVELS.LEVEL_1_2;
	import Data.CLASSES.MAIN_MENUS.Main_Menu1;
 
	import flash.events.Event;
 
	public class Main extends MovieClip {
		public var main_menu:Main_Menu1;
		public var level1:LEVEL_1_2;
 
 
		//====================КОНСТРУКТОР=====================================================
		public function Main(){
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
	//--------------------ИНИЦИАЛИЗАЦИЯ МЕНЮ--------------------------------------------------------
		public function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			main_menu = new Main_Menu1(this)
			addChild(main_menu);	
		}
 
		//---------------Новая игра----------------------------
		public function new_game() {
			level1 = new LEVEL_1_2(stage,this);
			main_menu=remove_movie_clip(main_menu);
			addChild(level1);
		}
 
		//--------------Загрузить игру-------------------------------
		public function load_game() {
 
		}
 
		//--------------Закрыть игру-------------------------------
		public function exit_game() {
			parent.removeChild(this);
			fscommand ("quit");
		}
 
		//---------------------------Удаление мувиков с главной сцены--------------------------------------
		private function remove_movie_clip(clip:*) {
			if (clip) {
				removeChild(clip);
			}
			return null;
		}
 
	}
}
Вобщем элементарный класс с подгрузкой на сцену основного контента. Фактически ничего в нем делать ненада по статьях.

Preloader.as:
Код AS1/AS2:
package
{
	// imports
	import flash.display.MovieClip;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.utils.getDefinitionByName;
	import mx.logging.Log;
	import mx.logging.targets.TraceTarget;
 
	public class Preloader extends MovieClip
	{
		/**
		 * Constructor
		 */
		public function Preloader()
		{
			trace("Старт прелоадера");
			// stage
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
 
			Pr=new MyPreloader();
			addChild(Pr);
 
			if (loaderInfo.bytesLoaded >= loaderInfo.bytesTotal)
			{
				// swf is already loaded
				preloaderCompleteHandler(null);
			}
			else
			{
				// preloader methods
				loaderInfo.addEventListener(Event.COMPLETE, preloaderCompleteHandler);
				loaderInfo.addEventListener(ProgressEvent.PROGRESS, preloaderProgressHandler);
			}
		}
 
		/**
		 * Preloader progress
		 */
		private function preloaderProgressHandler(event:ProgressEvent):void
		{
			trace("Preloader progress: " + Math.round((event.bytesLoaded / event.bytesTotal) * 100) + "%");
		}
 
		/**
		 * Preloader complete
		 */
		private function preloaderCompleteHandler(event:Event):void
		{
			trace("Прелоадер готов");
			// go to second frame
			gotoAndStop("start");
 
			// application classname
			var applicationClass:* = getDefinitionByName("Main");
 
			// make the application
			var application:* = new applicationClass();
			addChild(application);
		}
	}
}
Добавлено через 9 минут
Дальше в настройках проекта прописал как в статье в АС3 компиле:
Цитата:
-frame "start" Main

Старый 13.06.2014, 16:44
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 4  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Если мне не изменяет память, по поводу проекта во fla и в нем же прелоадера, все объекты в библиотеке нужно делать НЕ export in first frame, кроме прелоадера. Что-то такое было, давным давно, покопайте в эту сторону, возможно что-то нароете.

Старый 13.06.2014, 16:44
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Сделать два фрейма, в первом фрейме stop() (или в конструкторе прелоадера), всем классам в ИДЕ поставить галку export to frame 2.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 13.06.2014, 16:47
Wells77 вне форума Посмотреть профиль Отправить личное сообщение для Wells77 Найти все сообщения от Wells77
  № 6  
Ответить с цитированием
Wells77

Регистрация: Nov 2013
Сообщений: 14
...и тут начались танци з бубном из-за привязаного Main.fla
В чистом примере на билдере основным классом проекта есть Main.as. Я же когда выставляю в билдере мейн основным и прописываю в СS6 его основным, то прелоадера вообще не видит (логично). Меняю у себя основным Preloader.as (Как в билдере так и в CS6), тогда прелоадер видит (трейсы выводит), но не видит метку кадра "start"

Добавлено через 2 минуты
Ставлю уже вручную в фла 2 кадра и 2 называю "start", так прелоадер грузится вместе с мейном и теряет свой смысл. Вобщем засада, нигде примера нету прелоадера кодом с привязкой fla

Добавлено через 3 минуты
Вобщем что нада лишнее вікинуть и что сделать чтоб компилилось с прелоадером нормально? И еще, компил где делать в таком проекте нада? Самим билдером или в IDE?

Старый 13.06.2014, 17:02
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Для начала давай забудем о проблеме с прелоадером — ты в чем вообще изначально проект делал, во Flash IDE или в нормальной IDE в связке с SDK?
__________________
Поймай яблоко 2!

Старый 13.06.2014, 17:04
Wells77 вне форума Посмотреть профиль Отправить личное сообщение для Wells77 Найти все сообщения от Wells77
  № 8  
Ответить с цитированием
Wells77

Регистрация: Nov 2013
Сообщений: 14
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Для начала давай забудем о проблеме с прелоадером — ты в чем вообще изначально проект делал, во Flash IDE или в нормальной IDE в связке с SDK?
Код весь в Flash Builder 4.7, графика в Flash Pr CC, связаны между собой Main.as, который и был классом документа fla и основным в билдере. Это изначально до гемороя с прикруткой прелоадера.

Добавлено через 1 минуту
Правил себе код в билдере, ктрл+ентер - компил при такой комбинации делался сразу в IDE. Все было норм.

Добавлено через 2 минуты
Теперь давайте пошагово раскажу как крутить Preloader.as начал и скажете где не так.

Добавлено через 3 минуты
1. Коды 2 классов в начале темы повторюсь. Вобщем сделал теперь основным классом Прелоадер как в ФБ так и в фла.
2.Прописал аргумент в ФБ: -frame "start" Main

Добавлено через 5 минут
3.Кадров нету в фла, все на классе Прелоадер завязано для справки. Нажимаю компил ктрл+ентер в билдере - в иде ошибка :
Цитата:
Старт прелоадера
Прелоадер готов
ArgumentError: Error #2109: Frame label start not found in scene Монтажный кадр 1.
at flash.display::MovieClip/gotoAndStop()
at Preloader/preloaderCompleteHandler()[D:\FLASH\ПРОЕКТЫ\ProfikEpisodeOne\Preloader.as:57]
at Preloader()[D:\FLASH\ПРОЕКТЫ\ProfikEpisodeOne\Preloader.as:32]
Добавлено через 6 минут
На этом этапе и начал методом тыка непонятно что делать и завис на неделю

Старый 13.06.2014, 17:30
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 9  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Не подскажу, я таким образом компилировал первые пару дней знакомства с FlashDevelop, после чего мне это окончательно надоело — подключил SDK и начал работать как положено.
__________________
Поймай яблоко 2!

Старый 13.06.2014, 17:42
Wells77 вне форума Посмотреть профиль Отправить личное сообщение для Wells77 Найти все сообщения от Wells77
  № 10  
Ответить с цитированием
Wells77

Регистрация: Nov 2013
Сообщений: 14
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Не подскажу, я таким образом компилировал первые пару дней знакомства с FlashDevelop, после чего мне это окончательно надоело — подключил SDK и начал работать как положено.
Поподробнее можна. В чем графику делаете? Все компилите в swc, потом в чем програмируете и компилите исходный swf?

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

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

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


 


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


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