1

Movieclip ローダーを使用して、swf(as3) を別の As3 Swf にロードしようとしています。ただし、読み込み後、Loader.width/loader.content.width は、読み込まれている swf の実際の幅よりも誇張された値を返します。不一致の検索をどこから開始するかについての指針はありますか? 前もって感謝します。

詳細(役立つ場合)

読み込まれる swf には、ドロップダウン、入力ボックス、コンボ ボックス (入力するフォーム) などの UI コンポーネントと、コード化された 1 回限りのトゥイーンがあります。

子 MC が親ムービークリップに読み込まれると、返される Loader.width 値は約 28 ピクセル誇張されます (ただし、高さは同じままです)。Loader.content.width も 28 ピクセルの誇張された値を返します。誇張された値は、子MCのステージ幅よりも大きくなっています。余分な ~30 ピクセルは、親ムービーの後続のコードを混乱させて、ロードされた swf を拡大縮小および中央揃えします。

アップデート:

stage.stageWidth は正しい値を返します。

外部 SWF をロードするために親 MC で使用されるコード:

private var deadURL = "child.swf";
private var deadReq:URLRequest = new URLRequest(deadURL);
private var deadLoader:Loader = new Loader();
deadLoader.load(deadReq);
deadLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onDeadLoad);


public function onDeadLoad(e:Event):void
{
addChild(deadLoader);
trace("content.width: " + deadloader.content.width); //returns exaggerated value
trace("width: " + deadLoader.width); //returns same exaggerated value
}
4

2 に答える 2

0

親MCのサイズが変更された場合、つまり[変換]ダイアログで100%以外の読み取りが行われた場合、その変換はすべての子に渡されます。

于 2010-03-13T00:36:55.323 に答える
0

外部 SWF をロードするために使用しているコードを投稿していただけますか?
どの方法で幅/高さの値を読んでいますか?
次のコードが外部 SWF 内で実行されると、どの値が返されますか?

trace(stage.stageWidth);
trace(stage.stageHeight);
于 2010-03-09T16:49:19.847 に答える