0

いくつかのSWFLoaderに複雑な問題があります。

SWFLoaderでswfをロードするアプリケーションがあります。ロードされたswfは別のswfをロードします(コンパイルされたflaのみ)。ロードしたswfにすべてのサイズ変更と位置のロジックを追加し、イベントのサイズ変更でうまく機能しますが、swfsapplicationCompleteで同じコードを実行しようとすると失敗します。swfをスタンドアロンとして実行すると、起動時の同じコードがうまく機能しますが、何らかの理由で、アプリケーションにロードするときのスケールが異なります。

幅と高さをブラウザのサイズに設定しているだけなので、スケール以外はすべて同じです。

これは、スタンドアロンとしてロードされたswfからのトレースです。swfLoader:1435 742 FlexLoader:1319.1 742 1.0305555555555554 1.0305555555555554

これは、私のアプリケーションにロードされたときに同じロードされたswfからのものです:swfLoader:1435 742 FlexLoader:1159.55 742 0.9053196681307955 0.9053196681307955

swfLoaderは、コンパイルされたflaをロードするロードされたswfのswfloaderです。それは私がサイズを変更して中央に配置する必要があるものです。次の数字は幅と高さです。FlexLoaderは、swfLoadersローダー(または必要に応じてコンテンツ)です。数値は、幅、高さ、scaleX、scaleYです。

ご覧のとおり、サイズは同じですが(これは、ロードされたswfsアプリケーションでも同じです)、スケールは異なります。両方のスケールは1280から計算され、高さ720は私のコンパイルされたflaのサイズです。

私がスケールをいじっている唯一の理由は、コンパイルされたflaの正確な幅を見つけられず、中央に配置できないことです(application.width --loadedSwf.width / 2)ですから、誰かが見つけるためのより良い方法を知っているならよろしくお願いします!! :)

私が得ていない部分は、なぜスケールが異なるのですか?私はどの部分が欠けていますか?私は完全に迷子になっていて、かなり長い間これを解決しようとしています:p

4

1 に答える 1

0

通常の Flash 表示オブジェクトと同様に、アイテムのサイズはその内部コンテンツに基づいて設定する必要があります。SWF (SWFa) を取得して別の (SWFb) にロードし、SWFb に SWFa の幅と高さを指示させた場合、SWFa の StageScaleMode を次のように調整しない限り、Flash は SWFa のステージを拡張せず、SWFa のステージをスケーリングします。 StageScaleMode.NO_SCALE. これを行った場合でも、SWFa のステージのサイズが変更されたときにすべてのアイテムの再配置を処理して、ステージが拡大/縮小してもアイテムが中央に配置されるようにする必要があります。

于 2010-08-14T15:10:00.117 に答える