actionscript 3.0でウィンドウのサイズを変更する
-
05-07-2019 - |
質問
Actionscriptまたは他の方法を使用して、Flashプロジェクト全体のサイズを変更する方法はありますか?
1024x768のFlash CS3アプリケーションを作成しましたが、仕様を詳しく調べてみると、800x600でなければならないことがわかりました。すべてを手動で小さくする代わりに、誰かが外側の端をドラッグしているかのようにウィンドウのサイズを変更したいと思います。または、1024x768と800x600を切り替えるボタンを追加することもできます。これは可能ですか?
次のようなものです:
stage.stageWidth = 800;
stage.stageHeight = 600;
解決
はい、ドキュメントにかかわらず、stageWidthとstageHeightは読み取り専用です。ただし、SWFがWebページに埋め込まれている場合、要素の幅と高さを変更するとステージサイズが変更され、scaleModeによってその処理方法が決まります。 私のEnjoy3D WebサイトのすべてのSWFは、ウィンドウのサイズ変更時にこれを行います...
他のヒント
必要に応じて、SWFのHTMLラッパーを編集し、新しいサイズを確認するだけで済みますが、ラスタライズされたメディアは縮小してもピクセル化される可能性があります。必要としない場合でも、すべてを縮小することをお勧めします。
Flashで本当に必要な場合は、flash.externalパッケージのExternalInterfaceクラスを使用して、HTMLのJavaScript関数を呼び出します。 swfがdiv内にあり、divの高さと幅の100%に設定されていることを確認してください。これで、JavaScriptのActionscriptを介してdivのサイズを変更するだけです。
stage.scaleModeが希望どおりに設定されていることを確認してください。
乾杯
Actionscriptからステージの幅と高さを変更することはできません。これらのプロパティは読み取り専用です。
swfをコンパイルする前に、ステージプロパティのサイズ(ここではFlashを使用していると仮定します)を800 x 600に設定しませんでしたか?
- xxx-app.xmlファイルで幅と高さのプロパティを設定できます
- 動的に行う場合は、FlexGlobals.topLevelApplication.widthおよびheightプロパティ、または廃止されたApplication.application.widthおよびheightプロパティを使用できます
-
または、FlexGlobalsまたはApplicationを実行できない純粋なActionScriptプロジェクトがある場合、メインのactionscriptファイル(Sprite)から次を実行できます(これを行う前にステージを初期化する必要があります)
width = WIDTH; height = HEIGHT; stage.stageWidth = WIDTH; stage.stageHeight = HEIGHT; stage.nativeWindow.width = WIDTH; stage.nativeWindow.height = HEIGHT;