質問

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

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

役に立ちましたか?

解決

作成されたFLAで定義されているロード済みSWFの幅と高さは、SWFをロードした Loader オブジェクトにあります。

swfLoader.contentLoaderInfo.width
swfLoader.contentLoaderInfo.height

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

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

他のヒント

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top