2012-06-05 4 views
1

Я много искал Google и не мог найти ничего, кроме предварительных загрузчиков на основе временной шкалы или внешних предварительных загрузчиков (загрузка внешних swfs).as3 self preloaded (внутренний) в классе документов

Я ищу класс документа, предварительно загруженный, который имеет даже библиотечные символы, экспортированные для первого кадра.

Просьба сообщить.

У меня также есть частные переменные внутри класса документа, относящиеся к тем экспортированным клипам.

public var menu:Menu; 
public var brand:MovieClip; 
public var container:MovieClip; 
public var background:Background; 
public var intro:Intro; 
public var language:Language; 

плюс множество клипов, экспортированных самой вспышкой на раме 1, например Combobox, (скриншот ниже)

enter image description here

+0

Взгляните на мой ответ на аналогичный вопрос: http://stackoverflow.com/questions/8410774/how-to-create-preloader-in-as3/8411615#8411615 – package

ответ

2

Вам просто нужно использовать root.loaderInfo «s bytesTotal и bytesLoaded свойства.

Когда они равны друг другу, вы загрузили 100% SWF, и вы можете управлять тем, что должно произойти следующим соответствующим образом.

Пример:

package 
{ 

    import flash.display.Sprite; 
    import flash.events.Event; 


    /** 
    * Document class. 
    */ 
    public class Document extends Sprite 
    { 

     // Constructor. 
     public function Document() 
     { 
      addEventListener(Event.ENTER_FRAME, _loadStatus); 
     } 


     // Manage the current status of the preloader. 
     private function _loadStatus(e:Event):void 
     { 
      if(loadPercent >= 1) 
      { 
       removeEventListener(Event.ENTER_FRAME, _loadStatus); 

       beginApplication(); 
      } 
     } 


     // Load complete, being the application here. 
     protected function beginApplication():void 
     { 
      trace("Loaded."); 
     } 


     // Returns a number representing current application load percentage. 
     protected function get loadPercent():Number 
     { 
      return root.loaderInfo.bytesLoaded/root.loaderInfo.bytesTotal; 
     } 

    } 

} 

Я должен также отметить, что экспорт все символы библиотеки на первом кадре это плохая идея - вы должны убедиться, что они не экспортироваться на первом кадре.

Бонус: Имея выше класс в качестве базового класса вашего фактического класса документа делает для очень аккуратные точки входа в приложение (где вы начинаете кодирования приложения):

public class MyDocument extends Document 
{ 

    override protected function beginApplication():void 
    { 
     // Application has loaded. 
     // Your initialize code here. 
     // 
     // 
    } 

} 
+0

Спасибо за ответ, но проблема в том, что если я установил клипы для экспорта в фрейм 2, я получаю всевозможные ошибки, например, у меня есть частные переменные внутри класса Document, относящиеся к этим клипам, отредактировал мой вопрос, чтобы включить их. –

+0

@iPhoneDeveloper Да, поэтому, чтобы обойти это, вы должны инициализировать класс, содержащий эти ссылки ПОСЛЕ загрузки документа, который обойдет эти ошибки. Что произойдет со всем, экспортированным в первый кадр, будет то, что прелоадер (если он у вас есть) может даже не отображаться, пока документ не будет загружен на 90%, потому что все остальное забивает нагрузку. Вы можете также не иметь предустановителя, если все экспортируется в первом кадре. – Marty

+0

согласен, но потом я должен изменить каждый клип, без проблем, если мне нравится один или два, но я заметил, что многие компоненты из самой вспышки, экспортирующие себя в фрейм 1, и даже перемещение их в кадр 2, приведет к появлению большего количества ошибок, прикрепленных скриншотов на вопрос –

 Смежные вопросы

  • Нет связанных вопросов^_^