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

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

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

Регистрация: Nov 2009
Сообщений: 14
По умолчанию Preloader

во флешку устанавливал прелоадер, код as3 не мой. суть в том что несовсем ясно зачем в конце кода идет обращение к функции main. ведь и без нее после загрузки, отличной отработки прелоудера флеш перейдет к 3 кадру, а что поместить в этот 3 кадр каждый решает сам.
Код AS3:
package 
{
 import flash.display.MovieClip;
 import flash.events.Event;
 import flash.events.ProgressEvent; 
 import flash.display.Sprite;
 import flash.display.StageAlign;
 import flash.display.StageScaleMode;
 
 public class GamePreloader extends MovieClip
 {
  public static  const ENTRY_FRAME:Number=3;
  public static  const DOCUMENT_CLASS:String='GameApp';
 
  private var preloader:MovieClip;
 
  public function GamePreloader() 
  {
   stage.align=StageAlign.TOP_LEFT;
   stage.scaleMode=StageScaleMode.NO_SCALE;   
   stop();
 
   preloader=getChildByName('mcPreloader') as MovieClip;
 
   loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
   loaderInfo.addEventListener(Event.COMPLETE, completeHandler);   
  }
 
  private function progressHandler(event:ProgressEvent):void
  {   
   var loaded:uint = event.bytesLoaded;
   var total:uint = event.bytesTotal;
   var p:int=int((loaded/total)*100+1);   
   preloader.gotoAndStop(p);
   preloader["pr"].text=(p-1)+'%';
  }
 
  private function completeHandler(event:Event):void
  {
   play();
   addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
  }
  private function enterFrameHandler(event:Event):void
  {
   if (currentFrame >= ENTRY_FRAME) 
   {
    removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
    stop();
    main();
   }
  }
 
  private function main():void
  {
   var programClass:Class = loaderInfo.applicationDomain.getDefinition(DOCUMENT_CLASS) as Class;
   var program:Sprite = new programClass() as Sprite;
   addChild(program);
  }
 
 }
}
прошу прощения за сумбурность. но main мен в тупик прямо поставила

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Просто этот прелоадер не для мультика придумали)) Если дальше с третьего кадра идет просто анимация - то вопросов нет, убирайте стоп и мейн, и вперед. Но судя по названию класса, этот прелоадер писали для игры, а не для мультфильма.
__________________
Reality.getBounds(this);

Старый 27.09.2010, 15:48
Воитель вне форума Посмотреть профиль Отправить личное сообщение для Воитель Найти все сообщения от Воитель
  № 3  
Ответить с цитированием
Воитель
[+1.3 27.09.09]

Регистрация: Jul 2009
Сообщений: 42
А я вот всё не понимаю, некоторые моменты.
Вот например как сделать прелоадер если у меня большинство файлов грузиться из вне. Их надо все загружать во второй кард?
Как вообще идёт код в AS 3.
Например сначала идёт конструктор основного класса, потом всё от событий.
А если мы перешли на второй кард, и там ещё какой-то код написан, во вкладке действия. То вообще путаница начинается.
Как код идёт когда у мувика несколько кадров?

Добавлено через 1 час 11 минут
Я использую CS 3 и там нет функции загружать во второй кадр, есть только загружать в первый кард.
Как более грамотно всё скинуть во второй кадр?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
как сделать прелоадер если у меня большинство файлов грузиться из вне
Вы смысл понятий разделите. Прелоадер флэшки - это прелоадер данного свф-файла, отслеживающий загрузку данного свф-файла на основе его веса. При чем тут внешние ресурсы, другие файлы? Их вес не входит в вес этой флэшки, и прелоадер никак не способен это отслеживать. Необходимо писать особый прелоадер. Здесь уже было немало обсуждений этой темы. Можно сделать несколько шкал загрузки, или поделить одну на фрагменты по количеству ресурсов, или по их весу, если он известен заранее, и заполнять ее последовательно на основе прогресса загрузки файлов.
__________________
Reality.getBounds(this);

Старый 28.09.2010, 15:14
Nimmf вне форума Посмотреть профиль Отправить личное сообщение для Nimmf Найти все сообщения от Nimmf
  № 5  
Ответить с цитированием
Nimmf

Регистрация: Nov 2009
Сообщений: 14
Wolsh, т.е. я правильно понял: в случае игры main - это основной класс игры?

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

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
main - это метод. Функция. Основной класс - GameApp. И вот чтобы его создать в прелоадере (который в 1-м кадре), а сам класс GameApp был не в 1-м кадре пишут такую штуку. В CS 3 всё запущено, в CS4 даже лучше, там есть экспорт во 2-й фрейм - http://etcs.ru/blog/as1/export_in_se...ame_flash_cs3/ тут подробнее.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

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

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


 


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


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