ロードされたswfのステージの寸法
-
05-07-2019 - |
質問
状況は次のとおりです。外部.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に配置し、幅と高さをステージに合わせます。インスタンス名を指定し、ロード時にその値をサイズに使用します。