- ベストアンサー
フラッシュをブラウザ画面にフィットさせる方法とは?
- フラッシュをブラウザ画面サイズにフィットさせるための方法を解説します。フラッシュ初心者でも理解しやすいように、実際のサンプルサイトを参考にして説明します。
- フラッシュをブラウザ画面にフィットさせるためには、全体を固定表示にし、写真のみを伸縮させる必要があります。この方法を使えば、ブラウザサイズに関係なく写真がフィットするサイトを作ることができます。
- 具体的な方法は、複数のシーンを使用してデザインを作成することです。この方法を使えば、簡単にブラウザ画面にフィットするフラッシュを作ることができます。ただし、Actionscript3.0を使用しているので、初心者の方は少し難しいかもしれません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> Actionscript2.0のもの?なのか > 入れ込んでもエラーが出てしまいます > http://okwave.jp/qa/q1838609.html そのページのスクリプトは ActionScript 2.0 と言より ActionScript 1.0 の範囲内のスクリプトです。 まあどちらにしても ActionScript 3.0 では通用しないので その "スクリプト自体" は使えません。 (考え方は使えますよ。) それと, 「ご質問の図の説明」と 「 http://glamorous.co.jp/top/ の動き」とは 違っている部分があったり(例:フッターはブラウザにフィットしてないなど) また, ご質問の図中の水色の「オブジェクト 伸縮なし」は いったいどこを基準にしてどのように配置させるのかなど不明な点があります。 それら不明な点などは こちらで勝手に決めさせていただくものとして以下を続けます。 Flash CS6 で AS 3.0 設定の「新規ドキュメント」を作成し メインタイムラインの フレーム1 にコピペするスクリプト例です↓。 //===================== //ステージなどを適当に設定 [SWF(backgroundColor = "#000000",frameRate = "20")] //ステージ内の整列を左上を基準にして拡大縮小なし stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; //---↓以下は本当は手動で作成↓--- //基準点を左上にした写真入りMC「pic_mc」を作成 var pic_mc:MovieClip = new MovieClip(); with (pic_mc.graphics) { beginFill(0xFFFF99); drawRect(0, 0, 800, 600); endFill(); } pic_mc.y = 40; addChild(pic_mc); //基準点を左下にしたMC「obj_mc」を作成 var obj_mc:MovieClip = new MovieClip(); with (obj_mc.graphics) { beginFill(0x00FFFF); drawRect(0, -150, 200, 150); endFill(); } obj_mc.x = 10; obj_mc.y = stage.stageHeight - 50; addChild(obj_mc); //基準点を左上にした左ヘッダーMC「header_l_mc」を作成 var header_l_mc:MovieClip = new MovieClip(); with (header_l_mc.graphics) { beginFill(0xFF9966); drawRect(0, 0, 5000, 40); endFill(); } addChild(header_l_mc); //基準点を右上にした右ヘッダーMC「header_r_mc」を作成 var header_r_mc:MovieClip = new MovieClip(); with (header_r_mc.graphics) { beginFill(0xFF6633); drawRect(-200, 0, 200, 40); endFill(); } header_r_mc.x = stage.stageWidth; addChild(header_r_mc); //基準点を左下にした左フッターMC「footer_l_mc」を作成 var footer_l_mc:MovieClip = new MovieClip(); with (footer_l_mc.graphics) { beginFill(0xFFCCEE); drawRect(0, -20, 5000, 20); endFill(); } footer_l_mc.y = stage.stageHeight; addChild(footer_l_mc); //基準点を右下にした左フッターMC「footer_r_mc」を作成 var footer_r_mc:MovieClip = new MovieClip(); with (footer_r_mc.graphics) { beginFill(0xFF99CC); drawRect(-200, -20, 200, 20); endFill(); } footer_r_mc.x = stage.stageWidth; footer_r_mc.y = stage.stageHeight; addChild(footer_r_mc); //---↑以下は本当は手動で作成↑--- //初期「pic_mc」の幅と高さを記録 var pic_w:Number = pic_mc.width; var pic_h:Number = pic_mc.height; //ステージサイズの変更時に 関数 changeLayout を実行 stage.addEventListener(Event.RESIZE,changeLayout); //関数 changeLayout の定義 function changeLayout(e:Event):void { //ステージのサイズを取得 var s_w:Number = stage.stageWidth; var s_h:Number = stage.stageHeight; // //ステージの幅が 500px 以上であれば if (s_w >= 500) { //右ヘッダー「header_r_mc」を移動 header_r_mc.x = s_w; } // //ステージの高さが 400px 以上であれば if (s_h >= 400) { //MC「obj_mc」を移動 obj_mc.y = s_h - 50; } // //ステージの高さ 400px 以上であれば if (s_h >= 400) { //左フッターMC「footer_l_mc」を移動 footer_l_mc.y = s_h; //右フッターMC「footer_r_mc」を移動 footer_r_mc.y = s_h; } //ステージの幅が 500px 以上であれば if (s_w >= 500) { //右フッターMC「footer_r_mc」を移動 footer_r_mc.x = s_w; } // //写真入りMC「pic_mc」を拡大縮小 pic_mc.width = s_w; pic_mc.height = s_w*(pic_h/pic_w); } //関数 changeLayout を即実行 changeLayout(null); //===================== ↑各MC(ムービークリップ)の作り方(基準点の場所など)の説明などを 込み込みで書いた内容のスクリプトです。 上記のようにして作成&パブリッシュした SWF(Flashムービー) を 例えば header 内で <style type="text/css"> body {margin: 0;} </style> のように設定したHTML に 幅100% 高さ100% で貼り付ければ良いでしょう。 (SWF の貼り付け方は Flash の領域ではなく,HTML や CSS や,場合によっては JavaScript の領域です。) 動き(レイアウト状態)が, 思い描いていらっしゃるものと違う部分もあると思いますが MCの作り方や動きの考え方は全て書いたつもりですから レイアウト調節などはスクリプトの内容を理解して 少しずつ考えながら思い描いていらっしゃるものに近づけて行ってください。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
#1です。 #1の【補足】を拝見させていただきました。 > さっそくやってみているのですが、 > なぜかヘッダー左が薄いオレンジ右が濃いオレンジ、 > 真ん中の写真が黄色、フッターの左が薄いピンク右が濃いピンク、 > のベタの色が出てきてしまい、 > 既存のデザインがまったく見れなくなってしまいました、、 (1) 私が#1で書いた日本語の説明をちゃんと読まれていますか? (2) スクリプト中の「注釈行」の日本語をちゃんと読まれていますか? ================ (1) 私が#1で書いた日本語の説明をちゃんと読まれていますか? これに関してですが 私は#1で次のようなことを書いています > Flash CS6 で AS 3.0 設定の「新規ドキュメント」を作成し > メインタイムラインの フレーム1 にコピペするスクリプト例です↓。 『「新規ドキュメント」を作成し』と 「新規ドキュメント」 を括弧でくくってちゃんと強調しているでしょう? なおかつ#1では > ↑各MC(ムービークリップ)の作り方(基準点の場所など)の説明などを > 込み込みで書いた内容のスクリプトです。 とも書いています。 スクリプトはわからないのはしょうがないとしても せめて「日本語」くらいは理解した上で 読み飛ばさないようにしてください(最低限すべきことです)。 --- (2) スクリプト中の「注釈行」の日本語をちゃんと読まれていますか? これに関してですが 私は#1のスクリプト中に「日本語」で次のようなことを書いています > //---↓以下は本当は手動で作成↓--- ~略~ > //---↑以下は本当は手動で作成↑--- この間は本来手動でMC(ムービークリップ)を作成するのです。 上と同じ事を繰り返しますが スクリプトはわからないのはしょうがないとしても せめて「日本語」くらいは理解した上で 読み飛ばさないようにしてください(最低限すべきことです)。 この「最低限すべきこと」ができないのでしたら, 以降,何を説明しても無駄です。 (つまりこの#2の回答自体も無駄で終わります(私に出来ることはそうならないように願うことくらいしかありません))。 よろしいでしょうか? ココは回答文字数制限もありますし 図を添付するにしても1枚だけしかできないのですよ。 一々MC(ムービークリップ)の作成手順も含めて全てを説明していたら 何ページあっても説明は終わらないわけです。 (本ができます。) 仮にそういう説明ができたとしても #1の「日本語」すら理解できない人には さらに日本語の読解が困難になるだけで 詳細回答などしても無駄なんですよ。
お礼
BlurFiltan様 お礼を先日入力したと思っていただのですが、反映されていなかったみたいです、、ご連絡が大変遅くなってしまい申し訳ございません。。 また、せっかく細かくご指導いただいているというのに私の頭が足りないばかりにご面倒をおかけしてしまい本当に申し訳ございません、、 >『「新規ドキュメント」を作成し』 こちら既存の制作に入れ込みたいという焦る気持ちからそこに入れ込んでしまいました。。ご指導いただいているとおりまずは新規ドキュメントから検証してみたいと思います。 > //---↓以下は本当は手動で作成↓--- ~略~ > //---↑以下は本当は手動で作成↑--- こちらはムービークリップを手動で作成?との事かとかってに理解してしまっておりました。手動という言葉が少しひっかかっていたのですが、、中を自分でカスタマイズするという理解でよろしかったでしょうか? いただいたscriptをひとつづ解読してみたいと思います。 必ず実装しなければならないのでがんばって勉強します。 BlurFiltanさんの貴重なお時間をいただいてご指導いただいた点に関しまして心からお礼申し上げます。ありがとうございます。 今後ともご指導ご鞭撻の程よろしくお願い申し上げます。
補足
BlurFiltan様 こんなに詳しく>< ほんとにありがとうございます!! さっそくやってみているのですが、なぜかヘッダー左が薄いオレンジ右が濃いオレンジ、真ん中の写真が黄色、フッターの左が薄いピンク右が濃いピンク、のベタの色が出てきてしまい、既存のデザインがまったく見れなくなってしまいました、、恐らく私のやり方がまずいのだと思いますのでもう少し研究してみたいと思います、取り急ぎお礼まで。ほんとにありがとうございます。