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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.12.2011, 22:06
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 11  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
1. Лезете в настройки проекта http://*************/s/1oIsN и указываете export classes in frame 2.
2. Создаете пустой мувик и указываете ему в качестве класса ваш мейн-класс. То есть SlideGalleryClass.
http://*************/s/1oIuc не забывая поставить галочку export in frame 2
3. Лезем на таймлайн и создаем там второй кадр. Рисовать не обязательно ни в первом ни во втором. Просто они должны быть. http://*************/s/1oIvT -- как видите, пусто.
4. Добавляем переход во второй кадр в хендлере комплита загрузки. Вот так:

Код AS3:
private function startup():void{
  gotoAndStop(2);
  var mainClass:Class = getDefinitionByName("SlideGalleryClass") as Class;
  addChild(new mainClass() as DisplayObject);
}
5. Включаем тест муви. Включаем view> Brandwidth Profiler; включаем view Simulate Download, где не забываем выставить канал потоньше, а в мейн заембедить\накидать чего-нибудь потяжелее, если там еще пусто. Это чтобы потестить нормально. Любуемся на то, как код прелоадера рисует циферки. http://*************/s/1oIBa

Код прелоадера в примере прост:

Код AS3:
package 
{
 
	import flash.display.MovieClip;
	import flash.utils.getDefinitionByName;
	import flash.display.DisplayObject;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.events.ProgressEvent;
 
 
	public class Preloader extends MovieClip
	{
 
		private var _textField:TextField = new TextField();
		public function Preloader()
		{
			addChild(_textField);
			loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
		}
 
		private function progressHandler(event : ProgressEvent):void
		{
			_textField.text = String(int(100*loaderInfo.bytesLoaded / loaderInfo.bytesTotal));
		}
 
		private function completeHandler(event : Event):void
		{
			gotoAndStop(2);
			var mainClass:Class = getDefinitionByName("Main") as Class;
			var main : DisplayObject = new mainClass();
			addChild(main);
		}
 
	}
 
}
6. Любуемся на то, как все загрузилось, переключилось на второй кадр и в мейне приаттачилась большая балластная картинка.
http://imageshost.ru/photo/66527/id1140020.html

Вот как-то так можно, если не хотите переходить на более подходящие для кода среды разработки.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.


Последний раз редактировалось ChuwY; 20.12.2011 в 15:29.
Старый 13.12.2011, 23:51
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 12  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Кодовый вариант давно реализован на FlashDevelop.
+1

Код 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.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
	import flash.utils.getDefinitionByName;
 
	[SWF(width = 800, height = 700, backgroundColor="#FFFFFF")]
	public class Preloader extends MovieClip 
	{
		private var _tf:TextField;
		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
			_tf = new TextField();
			_tf.defaultTextFormat = new TextFormat("Tahoma", 20, 0x8A9B4A);
			_tf.autoSize = TextFieldAutoSize.LEFT;
			_tf.text = "0%";
			_tf.x = (Config.WIDTH - _tf.width)/2; //350;
			_tf.y = (Config.HEIGHT - _tf.height)/2;//325;
 
			addChild(_tf);
		}
 
		private function ioError(e:IOErrorEvent):void 
		{
			trace(e.text);
		}
 
		private function progress(e:ProgressEvent):void 
		{
			// TODO update loader
			_tf.text = int((e.bytesLoaded/e.bytesTotal)*100) + "%";
			_tf.x = (Config.WIDTH - _tf.width)/2; //350;
			_tf.y = (Config.HEIGHT - _tf.height)/2;//325;
		}
 
		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
			removeChild(_tf);
			_tf = null;
			startup();
		}
 
		private function startup():void 
		{
			var mainClass:Class = getDefinitionByName("MyMainClass") as Class;
			addChild(new mainClass() as DisplayObject);
		}
 
	}
 
}

Код AS3:
package
{
	import flash.display.Sprite;
	[Frame(factoryClass="Preloader")]
	public class MyMainClass extends Sprite
	{
        }
}
Добавлено через 1 минуту
Все дело в волшебном метатеге [Frame(factoryClass="Preloader")]
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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