1

私はよくグーグルで調べましたが、タイムラインベースのプリローダーまたは外部プリローダー(外部swfsのロード)以外は何も見つかりませんでした。

最初のフレーム用にエクスポートされたライブラリ シンボルを含む、プリロードされた Document クラスを探しています。

お知らせ下さい。

これらのエクスポートされたクリップを参照するドキュメント クラス内にプライベート変数もあります。

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 のフラッシュ自体によってエクスポートされた多数のクリップ (コンボボックスなど) (下のスクリーンショット)

ここに画像の説明を入力

4

1 に答える 1

2

とプロパティを使用する必要がroot.loaderInfoあります。bytesTotalbytesLoaded

それらが互いに等しい場合、SWFを100%ロードし、それに応じて次に何が起こるかを管理できます。

サンプル:

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.
        //
        //
    }

}
于 2012-06-05T08:04:37.337 に答える