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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Nov 2014
Сообщений: 52
По умолчанию Окно загрузки

И снова всем привет. Я заметил что во многих клипах используется некое окно загрузки с прогресс баром, и когда загрузка завершена, активируется кнопка Play для воспроизведения клипа.

Хотелось бы в первую очередь узнать как оно работает и как реализовано? Ведь если swf не до конца скачался, каким образом он выполняет скрипт и даже что то рисует?

Неплохо бы найти какой нибудь туториал, желательно с исходником на эту тему. Спасибо.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Уроков в сети на эту тему (preloader as3) очень много. Например - http://flash-animated.com/sozdanie-p...-rolika-na-as3

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

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от samana Посмотреть сообщение
Уроков в сети на эту тему (preloader as3) очень много. Например - http://flash-animated.com/sozdanie-p...-rolika-na-as3
Как делать если прелодер в классе,смысл не пойму,документ класс по любому же принадлежит первому кадру как я слышал.Как его до маин класса вписывать,или не обязательно, если не обязательно так это схематично выглядит хотя бы вообще меленький пример cs версиях


Последний раз редактировалось delphic; 18.12.2014 в 13:36.
Старый 18.12.2014, 13:33
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Это внутренний прелоадер. Как только загружен первый кадр флешки, она показывается и срабатывает код этого кадра или класса. Затем флешка просто сама себя проверяет - насколько она загрузилась.
Если у флешки всего один кадр, то такого внутреннего прелоадера ничего не выйдет.

Старый 18.12.2014, 13:51
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 5  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от samana Посмотреть сообщение
Это внутренний прелоадер. Как только загружен первый кадр флешки, она показывается и срабатывает код этого кадра или класса. Затем флешка просто сама себя проверяет - насколько она загрузилась.
Если у флешки всего один кадр, то такого внутреннего прелоадера ничего не выйдет.
смысл, 1)например я создал мувик 2)прикрутил его к классу прелодер 3)экспортирую этот мувик в первый кадр 4)кидаю прелодер на первый кадр, далее код в классе прелодера грузит игру и в конце переходит на второй кадр 5)на втором кадре меню игры которое запускает игру. А то что документ класс по умолчанию все равно вшит в первый кадр,ничего страшного я так понимаю, все равно флешка будет проверять насколько она загрузилась,я правильно понимаю логику? А совсем без кадров не пройдет я так понимаю,или хотябы на одном кадре, мне просто интересно. Например наверное можно сделать так отдельно класс прелодер котрый будет маин классом фла файла и этот фла файл будет грузить swf, а в этом swf будет фла файл с маин классом и без единого кадра....

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Как его до маин класса вписывать,или не обязательно, если не обязательно так это схемотично выглядит хотя бы вообще меленький пример
Например если вы пишете не во Flash, в другой среде, где нет "явных" кадров, то можно вставить кадр перед маин классом. В том же Flashdevelop есть шаблон для прелоадера:
Preloader
Код AS3:
package 
{
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
	import flash.utils.getDefinitionByName;
 
 
	public class Preloader extends MovieClip 
	{
 
		public function Preloader() 
		{
			if (stage) {
				stage.scaleMode = StageScaleMode.NO_SCALE;
				stage.align = StageAlign.TOP_LEFT;
			}
			addEventListener(Event.ENTER_FRAME, checkFrame);
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
			loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
 
			// TODO show loader
		}
 
		private function ioError(e:IOErrorEvent):void 
		{
			trace(e.text);
		}
 
		private function progress(e:ProgressEvent):void 
		{
			// TODO update loader
		}
 
		private function checkFrame(e:Event):void 
		{
			if (currentFrame == totalFrames) 
			{
				stop();
				loadingFinished();
			}
		}
 
		private function loadingFinished():void 
		{
			removeEventListener(Event.ENTER_FRAME, checkFrame);
			loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);
			loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError);
 
			// TODO hide loader
 
			startup();
		}
 
		private function startup():void 
		{
			var mainClass:Class = getDefinitionByName("Main") as Class;
			addChild(new mainClass() as DisplayObject);
		}
 
	}
 
}
Main
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
 
	[Frame(factoryClass="Preloader")] // <-------------
	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
		}
 
	}
 
}
Добавлено через 4 минуты
Да, вы правильно поняли голику по пунктам 1-5.

Цитата:
А то что документ класс по умолчанию все равно вшит в первый кадр,ничего страшного я так понимаю,
Документ класс - это не только первый кадр. Это все кадры главной линии времени (если они есть).

Старый 18.12.2014, 14:45
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 7  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
ну да,про fd я слышал о такой штуке,но я делаю в cs6, спасибо за ответы, уже какое то понимание пришло, уж как то трудно для меня было это прелодер
у меня документ клас примерно такой
Код AS3:
package nazvanie
{
	import flash.display.*;
    import flash.ui.*;
	import flash.events.*;
 
	public class DocumentClass extends MovieClip
	{
      private var mainMenu:MainMenu;
	  private var game:Game;
		public function DocumentClass()
		{	
			mainMenu = new MainMenu();
			mainMenu.x = 0;
			mainMenu.y = 0;
			this.addChild(mainMenu);
			mainMenu.addEventListener("PLAY",playListener);
		}
      private function playListener(e:Event):void
	  {
	        game = new Game();
		game.x = 0;
		game.y = 0; 
		stage.addChild(game);
	  }
 
}
ну и например mainMenu это как раз меню,с которого можно запустить игру. Вот этот мувик например на второй кадр закину. Это нормальный подход? Повторюсь, прелодер в первом кадре грузит то что после второго кадра, а там меню по щелчку которого запускается игра, логично ? ну а документ класс получается тоже в первом кадре идет. вот получается два кадра, первый там лежит полоса загрузки, второй кадр с мувиком меню


ММ, тогда получается надо из документ класс убирать главное меню игры в отдельный класс и прикрутить его к мувиклипу что на втором кадре будет и там же слушатель запуска игры, а что же тогда в документ классе писать,что он будет пустой тогда?


Последний раз редактировалось delphic; 18.12.2014 в 15:07.
Старый 18.12.2014, 15:10
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 8  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Почему-то мне кажется, что так не совсем сработает, ведь конструктор DocumentClass всё равно вызовется с самого начала запуска флешки и покажет mainMenu (ведь оно у вас там прописано).

Старый 18.12.2014, 15:40
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 9  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от samana Посмотреть сообщение
Почему-то мне кажется, что так не совсем сработает, ведь конструктор DocumentClass всё равно вызовется с самого начала запуска флешки и покажет mainMenu (ведь оно у вас там прописано).
ну так как я выше написал, если я с документ класса уберу это все,будет докум класс пусть пустой,а на втором кадре мувик меню запуска игры к которому прикручен класс с кодом
Код AS3:
		mainMenu = new MainMenu();
			mainMenu.x = 0;
			mainMenu.y = 0;
			this.addChild(mainMenu);
			mainMenu.addEventListener("PLAY",playListener);
		}
      private function playListener(e:Event):void
	  {
	        game = new Game();
		game.x = 0;
		game.y = 0; 
		stage.addChild(game);
	  }
вот тогда будет походу нормально... ну это вроде как точно отработать должно. ох уж этот прелодер в cs))) что самое интересное именно реализации в cs версиях хотя бы маленького примера, схемы работы загрузчика, откуда и куда, не нашел,просто коды в основном есть, а принципа что то ну не нашел...

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Тогда по-идее должно сработать! Но не могу сказать наверняка, так как не приходилось делать прелоадер во Flash IDE.

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

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

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


 


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


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