• 締切済み

flashの画面全体で表示

はじめまして。 質問させてください。 flashで背景画像のみを画面いっぱいに表示して 他のムービクリップはブラウザの大きさに左右されずサイズと場所を固定したくて 下記のように記述しました。 ---------------------------------------------- bg_h = _root.bg._height/_root.bg._width; Stage.scaleMode = "noScale"; Stage.align = "TL"; function setPosition() { _root.bg._width = Stage.width; _root.bg._height = bg_h*_root.bg._width; _root.rogo._x = 10; _root.rogo._y = 10; } ls = new Object(); ls.onResize = setPosition; Stage.addListener(ls); ---------------------------------------------- 上記だとブラウザのサイズが縦長になってしまうと下に大きく白い余白が空いてしまいます。 "noBorder"の使った時のように比率の差が大きい方のサイズに合わせたいのですが どうすれば良いのかわかります。 ご存知の方がいらしたら教えて頂ければと思います。 よろしくお願い致します。

  • Flash
  • 回答数4
  • ありがとう数8

みんなの回答

回答No.4

ごめん…まちがえた… ここのとこ ↓ bg._width=Stage.width; bg._height=bg._xscale; こっちで ↓ bg._width=Stage.width; bg._yscale=bg._xscale; ですね。

takuro000
質問者

お礼

わざわざ細かいところまでお教え頂き大変感謝しております。 無事ページも作る事ができました。ありがとうございます。

  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.3

スクリプトでなく、めっちゃイージーな方法なら「プロパティ」で背景画像の下端と同じ色を「背景」に指定するがありますが・・・^^;

takuro000
質問者

お礼

suzukoさん お礼が遅くなってしまいすいません。 ありがとうございます。そんな方法もあるとは!勉強になりました。

回答No.2

例えば下記とか…あんましきれいじゃないけど… Stage.scaleMode = "noScale"; Stage.align = "TL"; _root.rogo._x = 10; _root.rogo._y = 10; ls = new Object(); ls.onResize = setPosition; function setPosition(){ if(Stage.width<=Stage.height){ bg._height=Stage.height; bg._xscale=bg._yscale; if(bg._width<=Stage.width){ bg._width=Stage.width; bg._height=bg._xscale; } }else{ bg._width=Stage.width; bg._yscale=bg._xscale; if(bg._height<=Stage.height){ bg._height=Stage.height; bg._xscale=bg._yscale; } } } Stage.addListener(ls);

回答No.1

if文を使って Stage.width が Stage.height より大きければ処理1、小さければ処理2 みたいにしてみたらどうでしょ?

takuro000
質問者

お礼

ご回答頂きありがとうございます。 大変恐縮なんですがaction scriptがあまりわからず試行錯誤して今回のも作成致しました。if文もあまり使ったことがないので具体的にはどのようにすれば良いのわかりません。 申し訳有りませんがもう少し具体的にご教授頂けると大変助かります。 宜しくお願い致します。

関連するQ&A

  • FLASH アクションスクリプト

    画面のサイズを拡大縮小しても 常にセンターに表示させる アクションスクリプトで質問がございます。 back_mcが【背景】 main_mcが【オブジェクト】 _root.main_mc._x = ( Stage.width - _root.main_mc._width ) /2; _root.main_mc._y = ( Stage.height - _root.main_mc._height) /2; このアクションスクリプトで【オブジェクト】が最初から常にセンター表示になる事は分かるのですが、例えば座標x600 y500で始まるようにするのはどうしたら良いのでしょうか。 下記のアクションスクリプトでは、【オブジェクト】がx600 y500の位置に最初はあるのですが画面のサイズを拡大縮小してもピクリとも動きません。 Stage.align = "TL"; Stage.scaleMode = "noScale"; Stage.addListener(this); this.onResize = function() { _root.main_mc._x = 600;( Stage.width - _root.main_mc._width ) /2; _root.main_mc._y = 500;( Stage.height - _root.main_mc._height) /2; _root.back_mc._width = Stage.width; _root.back_mc._height = Stage.height; } this.onResize(); いまいち分かりにくい質問ですが伝わりますでしょうか。 分かる方、宜しくお願い致します。

    • ベストアンサー
    • Flash
  • フルウィンドウのFlash Firefoxなどでずれる

    http://creator.job-stage.jp/guide/fla_sample/flash_0001.html のサイトを参考にしてフルスクリーンのサイトを作っています。 Firefoxなどで確認したところ、 中央部に表示されず上半分にずれてしまいます。 Firefox用などのスクリプトが必要ですか? //1. ステージ クラスを宣言。 flStage.align = "LT"; Stage.scaleMode = "noScale"; //2. レイアウトの関数を宣言。 function LayOut() { _root.MC_Logo._x = 50; _root.MC_Logo._y = 50; _root.MC_CopyRight._x= Stage.width - _root.MC_CopyRight._width-20; _root.MC_CopyRight._y= Stage.height - 20; _root.MC_main._x = (Stage.width - _root.MC_main._width)/2; _root.MC_main._y = (Stage.height- _root.MC_main._height)/2; } //3. ブラウザーをリサイズした時の設定。 myListener = new Object(); myListener.onResize =function() { LayOut(); break; }; Stage.addListener(myListener); LayOut();

    • ベストアンサー
    • Flash
  • acttionscript2.0から3.0へ。。。(-.-)

    acttionscript2.0から3.0へ。。。(-.-) どなたか、AS2.0で記述されたスクリプトをAS3.0に書き換えていただけないでしょうか? ユーザーのモニター解像度・大きさに合わせてブラウザー内で100%・ フルスクリーンで表示させたい場合、 どういったActionScriptを書けばいいのかと考えて 2.0でのスクリプトは手に入ったのですが。。 すいません、どなたかよろしくお願いいたします。 Stage.align = "LT"; Stage.scaleMode = "noScale"; function LayOut() { _root.MC_Logo._x = 50; _root.MC_Logo._y = 50; _root.MC_CopyRight._x = Stage.width - _root.MC_CopyRight._width- 20; _root.MC_CopyRight._y = Stage.height - 20; _root.MC_main._x = (Stage.width - _root.MC_main._width)/2;// x 座標を中央にスクリプトで計算。 _root.MC_main._y = (Stage.height - _root.MC_main._height )/2;// y 座標を中央にスクリプトで計算。 } myListener = new Object(); myListener.onResize = function() { LayOut(); break; }; Stage.addListener(myListener); LayOut(); stop();

    • ベストアンサー
    • Flash
  • ブラウザに合わせる拡大・縮小する背景画像について

    よろしくお願い致します。 親swfの中にあるmc.bgに外部swfを表示しています。 このmc.bgはブラウザに合わせて拡大・縮小できるように、下記のス クリプトをメインフレームに入れています。 外部swfのひとつに、画像が100%で表示されてから少しづつ拡大して 次の画像へ切り替わるというスライドショーのswfがあるのですが、 (画像が表示・拡大する部分はモーショントゥイーンで制作しています) このswfを親swfに読み込んで表示しているときにブラウザをリサイズすると、外部swfがブラウザに合わなくなり、画像(外部awf)がmc.bgより小 さく表示されてしまいます。 (ブラウザのリサイズをしなければ問題ありませんでした) 外部swfの画像の拡大・縮小に関わらず、常にブラウザに合わせて拡大・ 縮小できるようにするにはどうすればよいのでしょうか? 色々検索したのですが、該当するものがありませんでした。 ほとほと困っております。どうぞよろしくお願い致します。 ※フレームに挿入しているスクリプトです。 ----- R = Stage.height/Stage.width; Stage.scaleMode = "noScale"; Stage.align = "LT"; function bgScale() { w = Stage.width; h = Stage.height; if (w*R>h) { bg._width = w; bg._yscale = bg._xscale; } else { bg._height = h; bg._xscale = bg._yscale; } bg._x = w/2; bg._y = h/2; menuMC._x = w-20; menuMC._y = h-20; } sListener = new Object(); sListener.onResize = function() { bgScale(); }; -----

  • acttionscript2.0から3.0へ。。。(-.-)

    acttionscript2.0から3.0へ。。。(-.-) どなたか、AS2.0で記述されたスクリプトをAS3.0に書き換えていただけないでしょうか? 下記サイトにAS2.0で記述されていました。 http://creator.job-stage.jp/guide/fla_sample/flash_0001.html そして上記サイトよりダウンロードしたflaに記述されていたスクリプトが下記です。 さらにその下には上記サイト内に記述されていてものも載せています。 Stage.align = "LT"; Stage.scaleMode = "noScale"; //----------------------------------------------------- //ここから、【関数】レイアウトの設定。 //各ムービークリップの座標を設定します。 //----------------------------------------------------- function LayOut() { //ムービークリップ「MC_Logo」の座標を設定 _root.MC_Logo._x = 50; _root.MC_Logo._y = 50; //ムービークリップ「MC_CopyRight」の座標を設定 _root.MC_CopyRight._x = Stage.width - _root.MC_CopyRight._width- 20; _root.MC_CopyRight._y = Stage.height - 20; //ムービークリップ「MC_main」の座標を設定 _root.MC_main._x = (Stage.width - _root.MC_main._width)/2;// x 座標を中央にスクリプトで計算。 _root.MC_main._y = (Stage.height - _root.MC_main._height )/2;// y 座標を中央にスクリプトで計算。 } //----------------------------------------------------- //ここから、リサイズ時の設定を行います。 //----------------------------------------------------- myListener = new Object(); myListener.onResize = function() { LayOut(); break; }; Stage.addListener(myListener); LayOut();//最後に、ロード完了時に一度、レイアウト用、関数「UpDate」を実行させる。 stop(); ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ ここからがサイト内に記述されていたスクリプトです。 //1. ステージ クラスを宣言。 flStage.align = "LT"; Stage.scaleMode = "noScale"; //2. レイアウトの関数を宣言。 function LayOut() { _root.MC_Logo._x = 50; _root.MC_Logo._y = 50; _root.MC_CopyRight._x= Stage.width - _root.MC_CopyRight._width-20; _root.MC_CopyRight._y= Stage.height - 20; _root.MC_main._x = (Stage.width - _root.MC_main._width)/2; _root.MC_main._y = (Stage.height- _root.MC_main._height)/2; } //3. ブラウザーをリサイズした時の設定。 myListener = new Object(); myListener.onResize =function() { LayOut(); break; }; Stage.addListener(myListener); LayOut();

    • ベストアンサー
    • Flash
  • FLASH:: ブラウザ領域にあわせて背景をリサイズ、その後固定

    FLASH:: ブラウザ領域にあわせて背景をリサイズ、その後固定 FLASH:: ブラウザ領域にあわせて背景をリサイズ、その後固定 WEBほぼ初心者ですが、ネットで検索しながら、フルフラッシュの可変レイアウトサイト作成に挑戦中です。 ステージは1920x1200、scaleModeはNO_SCALE, TOP_LEFTアラインです。 やりたいことは、最初にサイトに入った時のstageWidth,stageHeightにあわせて背景BG_mc(1920x1200です)を拡大・縮小し、以後もしウインドウサイズが変更になっても、そのサイズを維持させることです。 現状どうにかたどりついたスクリプトでは、近いことはできているのですが、問題が2つあります。 1: 初回アクセス時にBG_mcのリサイズが適用されず、元のサイズででてしまう。   いったんブラウザをリサイズすると、以後はリサイズが適用され続けます。 2: ブラウザサイズが変更されると、リサイズが動的に適用されつづけてしまう。 最初に拾ったサイズでBG_mcを固定して、以後ブラウザのリサイズは無視したいのですが・・。 下記がそのスクリプトです。 使用ソフトはFLASH CS4, AS3,現状ではGoogle Chromeのみでパブリッシュしてテストしています。 stage.addEventListener(Event.RESIZE, resizeListener); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //var DispX:int = Capabilities.screenResolutionX; //var DispY:int = Capabilities.screenResolutionY; function resizeListener (event:Event):void { trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); BG_mc.width = stage.stageWidth; BG_mc.height = stage.stageHeight; //if (stage.stageWidth > stage.stageHeight) { //BG_mc.width = stage.stageWidth; //BG_mc.height = stage.stageWidth*0.625; //} else { //BG_mc.width = stage.stageWidth; //BG_mc.height = stage.stageWidth; //} } どなたかわかる方、いらっしゃらないでしょうか? そもそもやろうとしていることは、Flashのみで可能なのでしょうか? レイアウトはHTMLを活用したほうがよいのでしょうか? よろしくお願いします。

  • 基準点について

    お世話になります。 現在、全面フラッシュのWebサイトを制作しており、下記サイトのような動作をイメージしています。(バックイメージの動作) http://www.axisinc.co.jp/ 仕様は下記としています。 バックイメージの画像:横幅1000px 高さ800px 読み込むバックイメージの位置は、(0,0)です。 この状況で、基準点を左下の(0,-800)にしたいと考えています。イメージサイトでは、左下になっているため、可能なのだとおもうのですが、方法が全くわかりません。 ちなみにアクションスクリプトは下記を設定しています。 ------------------------------------------------------------------- /*初期設定*/ Stage.scaleMode = "noScale"; Stage.align = "TL"; resizeListener = new Object(); resizeListener.onResize = function() { fixMenu(); }; /*各MCの読込*/ Stage.addListener(resizeListener); this.attachMovie("backImage", "backImage", 1); /*ステージサイズの設定*/ var backWidth = 1000; var backHeight = 800; /*fixMenu関数実行*/ function fixMenu() { if (Stage.width/backWidth > Stage.height/backHeight) { scale = Stage.width/backWidth; } else { scale = Stage.height/backHeight; } /*背景の設定*/ _root.backImage._xscale = _root.backImage._yscale = 100*scale; } fixMenu(); ------------------------------------------------------------------- どなたか、基準点を左下にする方法をお教えください。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • ブラウザのサイズに合わせてオブジェクト位置を移動

    あるオブジェクトのみ、ブラウザのサイズに合わせて拡大縮少するにはどうしたらいいでしょうか? Stage.scaleMode = "noScale"; ステージ自体は、拡大縮小なしにしています。複数のオブジェクト(フッターなどを常にブラウザのサイズに合わせて位置を移動させるため)。

  • widthのみ100%のAS及び、指定したMCのみ横にリピート

    FLASH8 AS2.0 お世話になっております。 只今ブラウザの下部にwidth 100%となるようなサイトメニューをFALSHで作っています。 以下のサイトの下部メニューのようにしたいのですが… http://fotologue.jp/38inside/ 下部にメニューの文字やサムネイルがならんでいて、 その上の横線がwidth100%の状態にしたいと思っています。 メニューになるサムネイルムービークリップを作成し、 1px × 1pxの上記説明で言う横線になるムービークリックを作成。 それが横にリピートするようにしたい状況です。 _rootにアクション用のレイヤーを作り、 その部分に、 Stage.scaleMode = "noScale"; Stage.scaleMode = "TL" と記しました。 仮に横線にしたいムービークリップをlineとした場合、 どのように記述したらよいのでしょうか? この質問内容に似たものの回答を参照して挑戦してみたのですが、 どうもうまくいかないので困っています。 html上ではwidth="100%" height="25" (高さは指定してみました。)と記述、 しかしこうすると、アンチエイリアスオフの文字がStage.scaleMode = "noScale"; と記述してるにも関わらずボケてしまうのも解決できません。 FALSHでwidth100%の環境をつくらずとも、 cssでborder-topなど使い作ってもいいのですが、 なんどかFLASHで出来ないかと思っています。 長くなってしまいましたが、 どなたか教えて頂けませんでしょうか。 宜しくお願い致します。

  • スクリーン中央を中心にズームするには?

    _width、_heightを変えてムービークリップのサイズを変更した際に、そのムービークリップをスクリーン中央(Stage.width/2、 Stage.height/2)を中心にズームした様に、_x、_yも変更したいです。 onClipEvent (enterFrame){   _width = _root.size;   _height = _root.size;   // _x はどう書いたらよい?   // _y はどう書いたらよい? } _root.sizeはテキスト入力などで変えるとします。  

    • ベストアンサー
    • Flash

専門家に質問してみよう