8

状況は次のとおりです。外部の .swf をロードするシェルを持っています。さて、その .swf は 800x600 ですが、これはアニメーション作品であり、ステージからはみ出す要素があります。.swf をシェルにロードして幅属性を呼び出すと、1200 が返されます。これは、ステージの外に出た要素が含まれているためです。

これは私が望むものではありません - 理想的には、2 つのプロパティがあり、1 つは「計算された幅」を返し、もう 1 つは「デフォルトの幅」を返します。これらのプロパティは存在しますか?存在しない場合、最善の回避策は何ですか?

4

2 に答える 2

15

作成に使用した FLA によって定義された、ロードされた SWF の幅と高さは、SWF をロードしたLoaderオブジェクトで確認できます。

swfLoader.contentLoaderInfo.width
swfLoader.contentLoaderInfo.height

これにより、FLA プロパティで定義された寸法が常に表示されます。画像、ムービークリップ、またはステージ外に拡張したものがあっても、違いはありません。

stage.stageWidthおよびプロパティは常にステージの幅を返します。stage.stageHeightステージは常に最上位の SWF です。つまり、常にシェルのステージの寸法を表します。Flash アプリケーションのステージは 1 つだけです。

于 2008-10-29T14:46:41.267 に答える
0

マークは、コンテンツローダー情報オブジェクトに正しい幅と高さが含まれている可能性が非常に高いです。私は自分自身をチェックしたことがないので、それを保証することはできません。ドキュメントには「公称」と記載されており、「実際」と対比されているため、合理的と思われます。

他にもいくつかのオプションがあります。外部swfをマスクできます。ステージのサイズのマスクを作成し、その下にすべてのコンテンツを配置します。もう1つのアイデアは、長方形の形状に基づいてムービークリップを作成し、アルファを0に設定して、x:0、y:0に配置し、ステージの幅と高さに一致させることです。インスタンス名を付けて、ロード時にその値をサイズに使用します。

于 2008-10-29T23:15:52.580 に答える