- ベストアンサー
swf自体の縮小方法について
私のサイトはindex.htmlに配置されたENTERリンクをクリックすることで、訪問者のPCの画面サイズを取得し、それに応じたファイル(index1024768.htmlに1024*768サイズのmain.swfを貼り付けたもの、index800600.htmlにmain.swfを800*600サイズに縮小して貼り付けたもの)を自動で開くようにjsにて設定しています。この1024*768を800*600サイズに縮小する方法を教えてください。 要するに設定サイズで作成したswfを.flaを変更せずにサイズ変更できるかということなんです。htmlに貼り付けた後でもかまわないので教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。 フルスクリーンの話でしたか。 しかし, 800:600=1024:768 です。 実測の誤差などな除くとして,比の問題ではないのすよね。 そしたら, 1024:768 を 800:600 で表示しても切り取られる部分は普通ありません。 例えば新規ドキュメントでステージいっぱいに こんな↓シェイプ(塗り)を描いて, ┌-------ステージ--------┐ □□□□□□□□□□□←青の塗り □□□□■■■□□□□ □□□■■■■■□□□ □□■■■■■■■←←←赤の塗り(●のつもり) □□■■■■■■■□□ □□□■■■■■□□□ □□□□■■■□□□□ □□□□□□□□□□□ 「ファイル」→「パブリッシュ設定」より, 「HTMLタブ」を選択して, サイズ(D):[ムービーに合わせる v ] となっているところを, サイズ(D):[パーセント v ] 幅(W) 高さ(E) [100 ] × [100 ]パーセント にして,任意のファイル名で任意の場所にパブリッシュしてみてください。 ブラウザの大きさにより,SWF の大きさは変わると思います。 > 差し引き分が切り取られた状態で表示されてしまいます。 という現象は起きないと思います。 ブラウザの縦横比によって,余分に表示されるところは出てきますよ。 でも,切り取られた状態にはならないと思います。 この状態が Flash のデフォルトの状態です。 だから,HTML や ブラウザ に左右されます。 Flash の大きさなんて,あってないようなものです。 #1でも書いた 表示に関する情報について http://hakuhin.hp.infoseek.co.jp/main/as/stage.html にある, 100%表示 サンプル表示(別窓) のように, Stage.scaleMode = "noScale"; などとわざわざ書いていませんか? わざわざ書くと,切り取られる現象が起きます。 もしくは, ここ↓のように, http://www.fumiononaka.com/TechNotes/Flash/FN0408002.html HTMLでわざわざ, "noScale" を選ばれているかです。 普通の状態では Flash はタグやブラウザの大きさによって変わるものです。 特殊なことをすると,タグやブラウザの言うことを聞かなくなるだけです。 さらに,比の問題でしたら, 最初に書いたURLでなんとか対処してください。 そのURLにあるように,何かを犠牲にしないとなりません。
その他の回答 (1)
つまり, 「index1024768.html」 にも 「index800600.html」 にも, 同じ 「main.swf」 を貼り付けてあって, HTML を切り替えることで, 「main.swf」 の大きさを切り替えているということですね。 とりあえずはその方法で良いのではないでしょうか。 というか,SWFのサイズなんて,あって,ないようなものです。 つまり, HTMLのタグでパーセント表示させたときはブラウザの大きさに依存しますし, HTMLのタグでピクセル表示させた場合は,そのピクセルが優先されます。 さらにつまり, SWFのサイズを決定しても,タグやブラウザによって変わってしまうので, SWF(ActionScriptなど)ではどうにもなりません。 10×10px で作っても,タグによって変わるので無駄です。 さらにさらにつまり, Flash を貼り付けてあるタグをなんとか変更するしかないということです。 ですから,Flash ではなく,HTML や JavaScript の分野になります。 訪問者のPCの画面サイズを取得し, それに応じたファイルを自動で開く js が作れたのでしたら, 訪問者のPCの画面サイズを取得し, それに応じたタグを document.write するjs を作るのが最も近い手段だと思いますよ。 もしくは, HTMLのテーブルの大きさをパーセントで決定して, その中に 幅:高さ 100% のタグでFlashを貼り付けるとか。 この,HTMLでのパーセント表示が最も簡単だと思います。 ご質問内容とは少し違うURLですが↓。 表示に関する情報について http://hakuhin.hp.infoseek.co.jp/main/as/stage.html
お礼
有難うございました。
補足
flash自体のサイズはさほど気にしなくても良いことはわかるのですが、どうしてもうまくいかなくて困っていることがあります。 画面が800×600の時に1024×768のswfが貼り付けられたhtmlを開くとどうしても差し引き分が切れてしまいます。ちなみにこの時、開くjsの内容は、 (1)訪問者の画面サイズを取得する (2)(1)のサイズによって、該当htmlを開く。(この時、フルスクリーンで開きます) 1024×768超ならindex1024768を、1024×768未満なら800×600を・・・ という感じです。重複してしまう質問になりますが、実際私のpcの画面サイズは1024×768以上の解像度である訳で、1024×768サイズで書き出しているmain.swfが貼り付けられているindex1024768.swfを自動で開き何ら異常はありません。しかし、画面解像度が1024×768未満であった場合、もちろんindex800600.htmlを開いてくれるのですが(フルスクリーンで)、この時、main.swfは1024×768で書き出している為、差し引き分が切り取られた状態で表示されてしまいます。index800600.htmlにはtable100%のmain.swf100%のサイズで貼り付けています。そこが問題なのでしょうが・・・ 何とか切り取られずにフルスクリーンで表示する方法を教えてください。 ちなみにsassakunさんの言うとおりHTMLのテーブルの大きさをパーセントで決定して,その中に 幅:高さ 100% のタグでFlashを貼り付けたのですが、だめでした