Тема: Preloader
Показать сообщение отдельно
Старый 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 мен в тупик прямо поставила