![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ブラウザ起動時に、ウインドウサイズ一杯にFlashを表示したい
AS3です。ブラウザ起動時に、
ウインドウサイズ一杯にFlashを表示したいのですが
上手くいかずに困っています。。
IE
FireFox
Safari
Opera
上記の4ブラウザ全てに対応したいのですが、
現在私がやっている手法では、FireFoxにしか対応できておりません。
わたしの今のやり方は、
Flashサイズを縦横100%でパブリッシュして、
swfのスクリプトでは
--------------------------------------------------------
var w:Number // ブラウザ起動時の横幅
var h:Number // ブラウザ起動時の高さ
stage.addEventListener(Event.RESIZE, wr);
function wr(e:Event):void{
w = stage.stageWidth;
h = stage.stageHeight;
stage.removeEventListener(Event.RESIZE, wr);
}
--------------------------------------------------------
この様に書いています。
FireFoxでは、
Flashサイズを縦横100%でパブリッシュされていた場合、
ブラウザ起動時のウインドウサイズに一度Flashサイズがリサイズされるので
その時に自動的にEvent.RESIZEが実行されるようなので
そこで初期サイズを取得できています。
(functionで、Event.RESIZEをremoveして
1回だけ、リサイズイベントが起きるようにして、
そこでブラウザ起動時のウインドウサイズを取得しています。)
しかし、他のブラウザでは、
「ユーザーがウインドウをリサイズする」というアクションを起こさないと
Event.RESIZEが実行されないようですので、
ブラウザ起動時にウインドウサイズ一杯にFlashを表示できません。
何か他の方法があるのでしょうか。。?
世の中によくある、ウインドウサイズ一杯のFlashサイトは
どのようにして作られているのでしょうか。。?
どなたかご存知の方いらっしゃいましたら
どうかよろしくお願いいたします。
No.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 );
}
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) 最近Win10にてブラウザが左にスッと隠れていく現象に悩まされてます 3 2023/07/22 23:11
- その他(ブラウザ) ブラウザを再起動してください 1 2023/06/22 09:05
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- ノートパソコン ウインドウ11のビデオエディターで編集しようとアンドロイドスマホで動画をとり、ひとつは種類はJPGフ 3 2022/08/16 00:39
- JavaScript ブラウザの横幅に応じてとある画像(e.jpg)を画面いっぱいに表示できるようにしたいです。(写真の横 1 2022/10/06 21:17
- Chrome(クローム) ウイルスバスタークラウドの「ブラウザを再起動してください」が消えません。 5 2023/06/17 11:12
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- フリーソフト タスクソフト? 1 2023/01/14 07:52
- その他(ブラウザ) ブラウザが起動しない 2 2023/04/13 12:06
- その他(ブラウザ) angel ブラウザってなぜアプリのクラッシュやフリーズが多いのでしょうか?? 特定のサイトにこのブ 3 2023/02/06 20:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アウトルックが起動しているか...
-
VB6で呼び出し元の情報を取得す...
-
VBAでOutlookを終了させたい Ex...
-
VBSで起動したアプリが前面表示...
-
QueryPerformanceCounter の使...
-
EclipseとTomcat使用時、すぐに...
-
VBSから別のVBS起動するとき変...
-
実行ファイルへのドラッグ&ド...
-
C#のフォームから起動するブラ...
-
Microsoft Edgeが起動しない
-
VBで実行中のEXEファイルの情報...
-
別のクラスからのタイマの起動方法
-
64bitで作ったEXEを32bitで起動...
-
2重起動の制御に関して
-
gccプログラムで複数の実行ファ...
-
DetectExcel 参照設定
-
クリスタルレポート v10 旧バ...
-
JavaScriptで作られているHPに...
-
コマンドボタンをクリックする...
-
EXCEL VBAから他アプリケーショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
分かる人は簡単なのだろうが、v...
-
VBAでOutlookを終了させたい Ex...
-
VBSから別のVBS起動するとき変...
-
VBで実行中のEXEファイルの情報...
-
WinSCPで画像のように puttyを...
-
VBSで起動したアプリが前面表示...
-
Windows上のプログラム。「予め...
-
ACCESS VBAで別のACCESS(mdb)を...
-
Process.Startで起動したアプリ...
-
64bitで作ったEXEを32bitで起動...
-
VBSでExcelのUserFormをエクス...
-
EXCEL VBAから他アプリケーショ...
-
VBAでSeleniumからChromeを起動...
-
フォームの最前面が効かない
-
AppActivateについて
-
VBAでIEが起動しているか...
-
VB6で呼び出し元の情報を取得す...
-
Vba アプリケーションが立ち上...
-
exeファイルを実行するとすぐに...
おすすめ情報