- ベストアンサー
ブラウザ起動時にウインドウサイズ一杯にFlashを表示したい
- ブラウザ起動時にウインドウサイズ一杯にFlashを表示する方法について困っています。
- 現在の手法ではFireFoxにしか対応できないため、他のブラウザにも対応したいです。
- ウインドウサイズ一杯のFlashサイトがどのように作られているのか知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
私はFlexBuilderしか持っていないので、少々勝手は違うのですが AS3って事でヒントになるかもしれないので書いてみます。 リサイズイベントをトリガにして処理を実行できないなら Flash側から能動的に動けるようにできないかと考え、 以下の事を考えました。 1. SWFを貼り付けるHTMLにJavaScriptでウインドウサイズを取得する関数を作る 2. Flashから1.で作った関数を呼び出して、ウインドウサイズを取得する 3. ウインドウサイズを変える で、3の処理自体は既に出来上がっているようですので 1.と2.について検証してみました。 結果、私が使ってるブラウザではウインドウ幅を取得することが出来ました。 ・IE6 ・Firefox3.5 ・Chorome4.0 ・Lunascape6.0(Trident/Gecko/Webkit) ※Webkitエンジンでも動作したのでおそらくSafariは大丈夫かと思います。 ※Operaはインストールしていないので未検証です。 -------------------- 実施内容 -------------------- 1. SWFを貼り付けるHTMLのヘッダに追記 -------------------- <head> <script language="javascript"> <!-- function getWidth() { if ( document.body.clientWidth ) { return document.body.clientWidth; } else { return window.innerWidth; } } function getHeight() { if ( document.body.clientHeight ) { return document.body.clientHeight; } else { return window.innerHeight; } } --> </script> <head> -------------------- 2. Flash側でウインドウサイズを取得する -------------------- package { import flash.display.Sprite; import flash.external.ExternalInterface; public class WindowSize extends Sprite { public function WindowSize() { if ( ExternalInterface.available ) { // JavaScriptの関数を呼び出して戻り値を貰う var w:Number = ExternalInterface.call( "getWidth" ); var h:Number = ExternalInterface.call( "getHeight" ); trace( "ウインドウサイズ : " + w + " * " + h ); } } } }
お礼
ありがとうございます!!!! 非常に分かりやすいご回答ありがとうございます!! おかげさまで出来ました!! 感謝しています!!