0

私の質問を少し説明させてください。

フラッシュWebサイトを作成していて、小さな外部プリローダーswfを使用してメインswfにロードしています。プリローダーswfでブラウザウィンドウ全体を表示することができましたが、メインswfに読み込まれるとすぐに、組み込まれている通常のサイズでしか表示されません。

メインのフラッシュアプ​​リケーション内にサイズ変更リスナーがあり、ブラウザーのサイズを変更するとすぐに、メインのswfがブラウザー全体を占有します。しかし、どうすればそのように始めることができますか?

-ENTER_FRAMEハンドラーを使用しようとしましたが、アニメーションの一部が壊れました。-プリローダーでローダーオブジェクトの幅と高さを設定しようとしましたが、それも機能しないようです。-ローダーにADDED_TO_STAGEリスナーを追加しようとしましたが、何も変わっていないようです。-また、プリローダーを1つのシーンに、メインアプリケーションを別のシーンに配置して、1つのswfのみをロードしようとしましたが、それは機能しないようで、そのプリロードの方法は好みません。

私はどこにも解決策を見つけることができませんでした。私が見逃している簡単なものはありますか?みなさんのご意見をお聞かせください。プリローダーコードは次のとおりです。

import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;

var request:URLRequest = new URLRequest("flashNew.swf");
var loader:Loader = new Loader();


loader.load(request);
this.addChild(loader);


function loadProgress(event:ProgressEvent):void
{
    var percentLoaded:Number = event.bytesLoaded / event.bytesTotal;
    var percentLoadedBar:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
    percentLoaded = Math.round(percentLoaded * 100);

    this.percentLoaded.text = String(uint(percentLoaded)) + "%";

    progressBar.width = percentLoadedBar * 3.36;
}

function loadComplete(event:Event):void
{
    //loader.content.height = stage.stageHeight;
    //loader.content.width = stage.stageWidth;
}

function setDimensions(event:Event):void
{
    loader.width = stage.stageWidth;
    loader.height = stage.stageHeight;
}

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.contentLoaderInfo.addEventListener(Event.ADDED_TO_STAGE, setDimensions);

JavaScriptなどで変更する方法はありますか?私はここで途方に暮れていて、何時間もこれに固執しています。どんな助けでもいただければ幸いです。ありがとうございました!

更新これ が私のサイズ変更関数のコードです。

function resizeListener(e:Event):void
{
    background_mc.width = stage.stageWidth;
    background_mc.height = stage.stageHeight;
    //The rest of the function is omitted. It is if's and else-if's that just reposition various elements.
    //That's really all this function does is re-position elements with the exception of the above code which resizes the background.
}

これがイベントリスナーの呼び出しです。

stage.addEventListener(Event.RESIZE, resizeListener);
4

1 に答える 1

0

これを試して:

このコード行を削除しました: this.addChild(loader);

次に、loadComplete関数を次のように微調整します。

function loadComplete(event:Event):void
{
    addChild(loader.content);
    loader.content.height = stage.stageHeight;
    loader.content.width = stage.stageWidth;
}
于 2012-08-14T22:38:48.593 に答える