1

次のコードを使用して、純粋なActionScriptプロジェクト(Flex Builder 3)にswfをロードしています。

_loader = new Loader();

_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, Loader_Complete);
_loader.contentLoaderInfo.addEventListener(Event.INIT, Loader_Init);

var request:URLRequest = new URLRequest("Skins/TestSkin.swf");
_loader.load(request);

this.addChild(_loader);

これは問題なく動作し、ステージにswfを表示します(何らかの理由で500x375-理由はわかりませんが、TestSkin.swfは幅と高さが定義されていないフレックスアプリです)

ただし、ステージを埋めるようにswfをスケーリングしようとすると、問題が発生します。

私が試してみました:

  • Loader_Completeハンドラーで_loader.widthと_loader.heightを設定する
  • Loader_Initハンドラーで_loader.widthと_loader.heightを設定する
  • Loader_Completeハンドラーで_loader.content.widthとloader.content.heightを設定する
  • Loader_Initハンドラーで_loader.content.widthとloader.content.heightを設定する

オンラインで例を見たことがありますが、これらの方法で幅や高さを設定すると、読み込まれたswfがまったく表示されません。

これを引き起こしている可能性のあるアイデアはありますか?

ローダーオブジェクトでロードされたswfのサイズを変更する正しい方法は何ですか?

4

1 に答える 1

1

現在の問題の回避策を見つけました。

次のイベント ハンドラーをサブ SWF に追加できます。

public function AddedToStage():void
{
    this.width = this.stage.width;
    this.height = this.stage.height;
}

アプリケーションの addedToStage イベントにアタッチします。

ただし、親 SWF からサブ SWF の寸法を設定する方法を知りたいのですが、ロードされた SWF を制御できない場合があるため、このコードを追加できません。

于 2010-05-06T11:06:38.773 に答える