• 締切済み

ブラウザに合わせる拡大・縮小する背景画像について

よろしくお願い致します。 親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(); }; -----

  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

状況がよくわかりませんから (ムービークリップ bg の初期座標がわからない,基準点の位置がわからない,外部swf のサイズがわからない,したいことがわからない,……など), ちゃんとは回答できませんが, スクリプトを見る限り,ユーザ定義関数 bgScale は一度も実行されません。 書かれていらっしゃるスクリプトの後に, 少なくとも, 次の2行(コメント行も含めると4行)が追加必要だと思います。 // Stageクラスのリスナーとして sListener を登録 Stage.addListener(sListener); //ユーザ定義関数 bgScale の初回実行 bgScale();  

patsaysnow
質問者

補足

早速ご回答頂きありがとうございます。 すみません、足りない部分はスクリプトのペーストミスでした。 背景画像のリサイズは問題なく動作しております。 表記すべき情報がすくなかったこと、お詫び申し上げます。 横1920px、縦1440pxの親swfのステージに、空ムービークリップ 「bg」を左上を基準に配置して、「bg」の中に「mc」という、 ステージと同じ大きさのムービークリップを縦横の基準点を中心に して配置しています。「mc」には以下のスクリプトを挿入してお ります。 onClipEvent (data) { _root.bgScale(); } 外部swfのサイズもステージ同様の1920px×1440pxにしております。 ステージと同じ大きさ1920px×1440pxの画像を配置して、モーショ ントゥイーンで縦横110%の大きさまで拡大しフェードアウト、フェードイン で100%の画像を表示し110%まで拡大、フェードアウトでまた次へ..と いうようなスライドショー的なswfにしています。 拡大せずに画像を100%の大きさで表示するだけでしたら問題なく 動作するのですが、例えば画像が110%で拡大されているときブラウ ザのリサイズをすると、次の100%の画像が表示されたときブラウザ よりも小さく表示されてしまうのです。 この状況を改善できればと思ったのですが、いかがでしょうか?

関連するQ&A

  • 縮小させる時の基点について

    ActionScriptを勉強中です。分からないことがあるので質問させていただきます。 ステージ上にマスクをかけたムービークリップ(インスタンス名:mc)があり、 そのmcを拡大ボタンと縮小ボタンを使い拡大/縮小できるようにしています。 mcが拡大されている時には、mc自体をドラッグして動かせるようにしています。 レイヤー構造は ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 1、ボタン:拡大ボタンと縮小ボタンを配置 2、マスク ---マスクの対象:mcを配置 3、背景:背景というか枠を書いています ーーーーーーーーーーーーーーーーーーーーーーーーーーーー となっております。 mcにには ーーーーーーーーーーーーーーーーーーーーーーーーーーーー on (press) { left = Stage.width-this._width/2-2; top = Stage.height-this._height/2-98; right = this._width/2+2; bottom = this._height/2+2; this.startDrag(false, left, top, right, bottom); } on (release, releaseOutside) { this.stopDrag(); } ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 拡大ボタンには ーーーーーーーーーーーーーーーーーーーーーーーーーーーー on (release) { if (mc._yscale < 300) { mc._xscale = mc._yscale += 100; } else { mc._xscale = mc._yscale = 300; } }ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 縮小ボタンには ーーーーーーーーーーーーーーーーーーーーーーーーーーーー on (release) { if (mc._yscale > 100) { mc._xscale = mc._yscale -= 100; } else { mc._xscale = mc._yscale = 100; } } ーーーーーーーーーーーーーーーーーーーーーーーーーーーー と書いています。 拡大した時の挙動は問題ないのですが、縮小する時の挙動に問題があります。 mcの中心を基点にしているため、端の方でで縮小すると余白が見えてしまいます。 この余白を見せないためにはどうしたら良いのでしょうか? 素人考えでhitTest()を使えば良いのかと思っているのですが、なかなかうまくいきません。 どうしたらよいのかご教示いただけると助かります。よろしくお願いいたします。 制作環境はCS4でAS2.0です。

  • loadMovie の拡大縮小

    初めまして、ActionScript についてご質問があります。 loadMovie で外部ファイルのswfを、ムービークリップ「screen」で表示させています。 ボタンで以下のActionScriptを使って、 「screen」を拡大縮小しようと思っております。 on(release){ screen._xscale *=1.2; //幅を1.2倍に拡大 screen._yscale *=1.2; //高さを1.2倍に拡大 } on(release){ screen._xscale /=1.2; //幅を1/1.2倍に縮小 screen._yscale /=1.2; //高さを1/1.2倍に縮小  } これだと無限に拡大縮小ができてしまいます。 上限下限を設定することは可能でしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 外部SWFの中のムービークリップを拡大したい

    こんばんわ! ちょっとわからないことがあるので質問があります。 よろしくお願いします。 メインの空ムービー(インスタンス名"loadpoint")に外部SWF"hallo.swf"を読み込むとします。 メインに取り付けた拡大、縮小ボタンで 外部SWF"hallo.swf"の中のムービクリップ(インスタンス名"touten_mc")を拡大させるにはどのようにしたらよろしいでしょうか? ※ 拡大ボタンにいれたスクリプト 単純に on(release) _root.loadpoint.touten_mc._xscale = 110; _root.loadpoint.touten_mc._yscale = 110; } 結果できませんでした よろしくおねがいします。

    • ベストアンサー
    • Flash
  • ムービークリップの拡大縮小

    MCをクリックしたら拡大・縮小をさせたく、過去の投稿を参考にしながら、以下のscriptを作りました。 onClipEvent(load){ v_orgScale = this._xscale; v_orgX = this._x; v_orgY = this._y; zoomState = false; } on(release, releaseOutside){ zoomState = !zoomState;  this.onEnterFrame = function(){   if( zoomState ){    if(this._xscale >= v_orgScale*2.3){     delete this.onEnterFrame;    }else{     this._xscale *= 1.1;     this._yscale *= 1.1;    }   }else if( !zoomState){    if(this._xscale <= v_orgScale){     this._xscale = v_orgScale;     this._yscale = v_orgScale;     delete this.onEnterFrame;    }else{     this._xscale *= 0.9;     this._yscale *= 0.9;    }   }  }; } ただ、これだとMCの基準点(0,0)に対しての拡大縮小なのでクリックしたポイントが拡大するにつれてどんどんずれていきますよね? これをクリックしたポイントがずれないように拡大縮小する事は可能でしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • 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を活用したほうがよいのでしょうか? よろしくお願いします。

  • ブラウザサイズに合わせてムービーを拡大縮小

    ブラウザのサイズに合わせてswfを同じ比率で拡大縮小させたいのですが、どのような記述をどこにすべきかわかりません・・・ どなたかご存知の方がいらっしゃいましたら、ご教授願いたいと思います。 swfファイル内にはMCとテキストボックス、Btnが配置されています。

    • ベストアンサー
    • Flash
  • ブラウザに合わせた写真の拡大・縮小について

    色々試してみたのですが、どうしても解決できないので知恵をお貸し頂ければ幸いです。 http://oshiete1.goo.ne.jp/qa2479358.htmlのように、インスタンス"mcM"だけがブラ ウザに合わせて拡大・縮小されるようにしたいのですが、現在途中まで作ったのが、ペー ジ上部にあるサムネイルをクリックしたとき、外部jpgを空mc"photo"に読み込む形のもの でして、この空mc"photo"を"mcM"に見立ててスクリプトを当てはめてみたのですが思う ように拡大されず、読み込んだ写真が90°ずれて表示されたり、縦横の比率がおかしくなっ たりして表示されます。 外部jpgでの読み込みにこだわっているわけではなく、単純に色々なサイズ(縦長・横長・ 正方形)の写真をブラウザの中央へ配置して、ウィンドウの大きさが変わったら拡大写真 の部分だけ縮小できればよいのですが、何か良い方法がありませんでしょうか? 分りずらい説明で申し訳ありません。補足説明も致しますのでよろしくお願い致します。

    • ベストアンサー
    • Flash
  • Flashで画像を拡大縮小する時の画像の荒れを防止する方法を教えてください。

    Flashで、「画像にマウスが乗ると拡大する」というムービークリップを作っています。 画像は、拡大した時のサイズで作成し、Flashに読み込んでいるのですが、 ファイルサイズを縮小する時、プレビューすると画像が荒れてしまいます。 それを回避する方法教えていただければとても助かります。 拡大縮小の指示は(画像のMCに) onClipEvent(load){ wideX = [245,300]; a = 0; function move(x){ a = x; } } onClipEvent(enterFrame){ this._height = 0.666*this._width; //縦横比を固定 this._width += (wideX[a] - this._width)/3; } です。 横幅300pxで取り込んだ画像の横幅を、245pxか300pxにしています。

    • ベストアンサー
    • Flash
  • 背景画像を拡大縮小

    ブラウザのサイズに合わせて背景画像も同比率で拡大縮小するような記述をしたいのですが、どなたかご存知の方がいらっしゃいましたらご教授ねがいたく思います。稚拙な知識しかありませんが宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • MCクリックで任意の場所を中心に拡大したい

    ステージの中心にMCを配置し、MCをクリックすると、クリックした座標を中心に徐々に拡大させたいのですが、うまくいきません。 拡大をしない場合は、 MC._x -= MC._xmouse; MC._y -= MC._ymouse; でクリックした箇所が中心になるのですが、 拡大していくとうまく計算できず大きくずれてしまいます。 onEnterFrameでMC._xscale、MC._yscaleが100から20ずつ増加し 最終的に200になるようにしているのですが、 この場合クリックした箇所を中心に拡大するにはどのように計算すれば良いでしょうか?

    • ベストアンサー
    • Flash

専門家に質問してみよう