2012-03-09 26 views
1

私はFlashで動作する読み込み画面を取得しようとしています。Flash Actionscript 3.0ローディング画面

  • ゲームのすべてが、さまざまなシーンに設定されている「レイヤー1」で発生します:これは私のプロジェクトの設定方法である「レベル0」、「レベル1」などそのコード".as"ファイルで実行されます

  • 新しいレイヤー "Preloader"に単純な読み込み画面(プログレスバー付き)を実装しようとしました。そのコードはレイヤの「アクション」で実行されます。

私は私が最初で、レイヤ1の「の.as」ファイルの負荷レベル0を持っていたので、その「アクション」にプリローダーのコードを置くことは最高のアイデアではなかったことを実現します。そのため、 "Preloader"と "Layer 1"のレイヤーは同時に実行しようとしました。これにより問題が発生しました。

今、私はプリローダーをそれ自身のシーンに入れようとしました。それは動作していません。ここで

は私がプリローダーのために使用して試したコードである - 「シーン」バージョン:

 // This function loads the Preloader 
    public function loadPL(event:Event) { 
     // Load the Scene associated with the Preloader 
     this.gotoAndStop(1, "PL"); 


     // Prevent the MovieClip (game) from playing right away 
     stop(); 

     // Add an EventListener that calls the 'loading()' function 
     this.addEventListener(Event.ENTER_FRAME, loadingPL); 


    } // End of 'loadPL()' method    

     // 'loading()' function 
      // This function calculates how much of the game has been loaded vs. how much data 
      // the game contains. The loading progress bar is resized accordingly. 
     public function loadingPL(e:Event):void{ 
      // How much data does the game have in all? 
      var totalData:Number = this.stage.loaderInfo.bytesTotal; 

      // How much data has been loaded so far? 
      var loadedData:Number = this.stage.loaderInfo.bytesLoaded; 

      // Scale the 'plBarIns' according to the loadedData:totalData ratio 
      plBarIns.scaleX = loadedData/totalData; 

      // If the 'loadedData' == 'totalData' (all of the game's data has been loaded), allow 
       // the game to play 
      if (loadedData == totalData) { 
       play(); 

       // Remove the EventListener that calls the 'loading()' function. It's not needed now 
       this.removeEventListener(Event.ENTER_FRAME, loadingPL); 
      } 
     } 

誰も私を助けてもらえますか?あなたが設定する必要がその後あなたは、フレーム1であなたのプリローダーを入れて、フレーム2に、プロジェクトの開始の残りの部分を持っている必要があり

おかげで、 クリスチャン

答えて

2

あなたのActionScriptの設定、それはあなたのすべてをロードするために知っているので、 FRAで

  1. [ファイル]> [ActionScriptの設定...
  2. 変更「エクスポートクラス:ここでは代わりに、フレーム1

    のフレーム2上のクラスには、変更する必要を設定するものです私は:デフォルトリンケージ」2

  3. 変更するには、 『:』にコードにマージ

あなたがLoaderInfoは、今すぐに完了にジャンプするのではなく、ファイルの読み込みの適切な進捗を返す必要があります。

+0

ありがとうございました!しかし、私は別の方法を試みました。以前の記事で触れたように、ゲームの各レベルは異なるシーンです。各レベルではそれぞれのシーンの最初のフレームが使用されます。私はプリローダーを自分のシーンに入れようとしました。ゲームが始まると、プリローダーシーンが読み込まれるはずです。その後、ゲームがロードされた後、レベル1が開始されます。それはうまくいかなかった。私はシーンの代わりにフレームに異なるレベルをすべて入れなければなりませんか?または、シーンと一緒にプリローダーを実装する方法はありますか? –

+0

また、フレーム2の実際のインスタンスをドラッグすると、 "YourDocumentClass"型の変数がメインタイムライン上に作成されるため、フレーム2のgetDefinitionByNameを介してメイン文書クラスをインスタンス化することができますフレーム1でエクスポートされます。 – Triynko

関連する問題