Flashでのマウスの位置に合わせてスクロールする方法

このQ&Aのポイント
  • Flashの制作でマウスの位置に反応して左右にスクロールする機能を作成したい。画像のループ処理がうまくいかず、画像が途切れてしまう課題がある。
  • ステージサイズは1160pxで、高さは223px。スクロールする画像は全体で3240pxの長さで、180pxのボタンが18個並んでいる。
  • 理想的には、マウスの位置に合わせて画像が両サイドに永久ループし、マウスオーバーしている画像はリンク先に飛べるようにしたい。
回答を見る
  • ベストアンサー

Flashでのマウスの位置に合わせてスクロール。

作業環境 PC : Windows7 Flash : Flash8 Actionscript : 2.0 困っています。 Flashの制作でマウスの位置に反応して左右にスクロールするのもを作りたいのですが、マウスに反応はしてくれても、画像のループ処理がうまくいかず、画像が途切れてしまいます。 ■参考にしているサイト http://acchan.s55.xrea.com/flash/scroll_menu/0501/scroll_menu0501b.html 僕が作ろうとしている状況は、下記の通りです。 ・ステージサイズ1160pxで、高さは223px ・スクロールする画像の全体での長さは3240px ・スクロールする画像は各ボタンになっていて、180pxが18個並んでいます。 理想としては、マウスの位置に合わせて、画像が両サイドに永久ループし、マウスオーバーしている画像は、その画像のリンク先に飛ばせるようにしたいのです。 どうかお力おお貸しください。 宜しくお願い致します。

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

質問者が選んだベストアンサー

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

ステージサイズを1160pxに変更し, 作るボタンの数を18個にしただけで その他はほとんど変えないままで 実際にサンプルの「scroll_menu_0501b.fla」の通りに作ってみたところ スクリプトの編集などはなしで全く無事にループ動作しましたよ。 何の応用力も工夫も必要ありません。 サンプル自体が "質問の答えそのまんま" だと思います。 う~~ん...困りましたね。 ご質問は「サンプルの通りを "そのまんま" を作ることもできない」という意味なのでしょうか?     仮に18個の画像にA~Rという名を付けたとするなら まずはそれらを入れたボタンを18個用意しますよね。 「A」「B」「C」…「R」 そしてそれらのボタンをまとめてムービークリップに変換しますよね? 「ABC…R」 そのムービークリップを3つ横に並べて配置し↓ 「ABC…R」「ABC…R」「ABC…R」 それらをさらにまとめて左上を基準点とした1つのムービークリップにします↓。 「ABC…RABC…RABC…R」 入れ子構造も図示すると次のようになるでしょうか。 『「ABC…R」「ABC…R」「ABC…R」』 その長いムービークリップ内の 真ん中の「A」の右端をステージの左端の位置に合わせるようにして配置し その長いムービークリップ自体に サンプルの「scroll_menu_0501b.fla」の「slideBar」レイヤーに置いてあるムービークリップの スクリプト↓をそのままコピペすれば良いだけです。 onClipEvent (load) { speed = 0.01; defX = this._x; rightSide = (this._width/3*2)*-1; } onClipEvent (enterFrame) { speed = (speed*0.7)+((_root._xmouse-300)*0.01); this._x -= speed; if (this._x>=0 || this._x<=rightSide) { this._x = defX; } } なおサンプルのスクリプトのままだと 左右のスピード変化が対象になっていません。 speed = (speed*0.7)+((_root._xmouse-300)*0.01); の部分を speed = (speed*0.7)+((_root._xmouse-Stage.width/2)*0.01); とした方が感じが良いと思います。 ("感じ" だけの問題でループするしないとは別問題です。) 「リンク先に飛ばせる」ことだけに関しては 全くそのまんまではありませんが 元のサンプルがほぼそのままが利用できます。 最初の画像はボタンにしてあるわけですから その各ボタンに on (release) { getURL("○○.html"); } のように書いて行けば良いだけです。 「getURL();を覚えよう。 」 http://www.1art.jp/flash/le/lesson20/lesson20.htm     ステージ幅を 1160px 高さ223px にして 私が実際に作ってみているところ↓。 とにかく何の問題もなくそのまんまで動きました。

Kenta57
質問者

お礼

アドバイス頂き本当にありがとうございます。 僕も質問をした後に何度もいじっているうちにループさせる事が出来ました。 BlurFiltanさんいつも丁寧なアドバイスをありがとうございます。 また何かわからない事があった時は宜しくお願いします。

関連するQ&A

  • マウスに反応した画像スクロール

    例えば500px×500pxの画像があるとして、それを200px×200pxのサイズのFlashで見せたいと思っています。当然Flashの方がサイズが小さいので画像の全体像は見えませんが、マウスの動きに反応して右なら右、下なら下にスクロールさせたいのです。このとき、ループではなく、画像の端までスクロールしたら止めたい(できればゆっくり・そっと止めたい)んですが、検索しようとしてもせいぜい「action script 画像 スクロール」ぐらいしか思いつかず、そういったスクリプトのサンプルが見つかりません。もしご存じの方、慣れているからそれぐらいなら書いてやるというような優しい方、おられましたらよろしくおねがいします。 イメージとしてはこんな感じです。 http://www.uniden.jp/jijitsu/

    • ベストアンサー
    • Flash
  • マウスカーソルに応じたmcのスクロール(ループ型)

    マウスカーソルに応じて、複数配置してるmcがカーソルに合わせてスクロールして、ステージからはみ出したら、はみ出した側のステージの反対から出てくるっていうscriptを作ったのですが、うまくいきません。ループしてくれないんです。 ---- _root ---------------------- menu.mcというのがあり、そのmcの中にmenu01.mc、menu02.mc、menu03.mc・・・という感じでmcが配置してあります。menu.mc自体に別のスクリプト掛けてるので、こういう形にしてます。 ---- _root>menumc ---------------------- menu01.mcなどそれぞれのmenuのmcが入ってます。 さらに、それぞれのmcの中にscroll.mcというのをおき、そのscroll.mcにscriptが書いてあります。 ---- _root>menu.mc>menu01.mc 内scroll.mcのscript------ _visible = false; center = Stage.width/2; halfWidth = _parent._width/2; this.onEnterFrame = function() {  with(_parent){  //Scroll Speed   if (_root._xmouse<=180 || (_root._xmouse>250) && (_root._xmouse<=429)) {    moveX = (center-_root._xmouse)/15;   }else if(_root._xmouse>180 && _root._xmouse<=250){    moveX = 0;   }   _x = _x+moveX;   //Return Scroll   if(_x > Stage.width+halfWidth){    _x -= _width+Stage.width;   }else if(_parent._x < -halfwidth){    _x += _width+Stage.width;   }  } }; --------------------- で、これだときちんと思ったような動きでスクロールはするんですが、ただループしてくれないんです。しかもスクロールする毎にそれぞれのmcの間隔がずれてる気がします。最悪の場合だと、mcの上に別のmcが重なったりしてます。 なぜ、このような現象になってしまうのでしょうか?

  • Flash/マウスでスクロールするマップにリンクを貼りたい

    画像をマウスの動きにあわせてスクロールさせてリンクのついている ページを作成したいと思います。 http://www.sophia-eternal.com/index_pc.html マップを自動でスクロールさせるということは出来たのですが、リンクを貼るという方法が解りません。 作成したものがあるので見ていただけると助かります。 http://shotgunimp.s328.xrea.com/as.htm 緑の●がリンク部分なのですが、これを★が動く時に一緒に リンクも動いて欲しいのですが、 現在、キャンバスに固定になってしまっています。 ●は現在解りやすくするために色をつけていますが将来的には透明リンクになる予定です。 シンボルをボタンにしているのがいけないのでしょうか? アクションスクリプトはこちらから貰ってきました。 http://hakuhin.hp.infoseek.co.jp/main/as/scroll.html#SCROLL_01 具体的なリンク方法を教えてください。よろしくお願いします。

  • ActionScript スクロールメニュー

    ActionScriptで以下のサイトのように、下段のサムネールが左右にスクロールするメニューを作成したいのですが、実現方法がわかりません。 http://www.wasedazemi.com/ ・下段の最右、または最左の矢印ボタンを押すとその方向にメニュー1個分スクロールし、下段の真ん中のメニューの画像が上段に表示される。 ・下段の任意のサムネールを押すとその画像が下段真ん中に移動し、上段にその画像が表示される。 ・下段のサムネールはループしていて、スクロールをし続けても端にならずに回り続ける。 ・上段の画像にマウスオーバーすると青い枠線が表示される。 ActionScript 3.0、Flash CS5を利用しています。 ご教授よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash マウスの位置で速さの変わるスクロールメニュー

    Flashでスクロールメニューを作成したいのですが、うまくいきません。 ボタンを羅列しムービークリップにし、 onClipEvent (load) { Min = -80*15; speed = 20; } onClipEvent (enterFrame) { if (_parent.mask.hitTest(_root._xmouse,_root._ymouse,0)) { this._x -= _parent.mask._xmouse/speed; if (this._x >0) { this._x += Min; } else if (this._x < Min) { this._x -= Min ; } } } 上記のスプリクトを記述することで動かすことには成功しました。 しかし上記スプリクトでは、ドキュメントサイズ内では、メニューにマウスオーバーしないと制止してしまいます。 http://www.sophia-eternal.com/ 上記サイトの様に、読み込んだ時から常にゆっくりスクロールし、 マウスオーバーした時にのみ動きの速さを変えるにはどのようなスプリクトを追加すればよろしいでしょうか? メニューのみのFlashファイルを作成し、HTMLで組み立てれば早いのですが、 デザイン上、ページ全体を1つのFlashファイルで作成するしかありません。 メニューが常にスクロールしていて、マウスオーバーした時にのみ動きの速さが変わる様にしたいのです。 宜しくお願い致します。

  • メニュースクロール

    質問です。 メニューがスクロールするFLASHを作りたいのですが うまくゆきません。 ボタンにポインタを置いた時にスクロールさせるところまでは出来たのですがポインタを離して放置しておくと、勝手にスクロールしてくれるようにしたいのです。 setIntervalがヒントだというトコロまではなんとか漕ぎ着けたのですが actionscriptはほとんど分からないため、困っています。 どうかご教授のほどお願いいたします。 環境はWindows2000にてFLASH8professionalを使用しています。

    • ベストアンサー
    • Flash
  • 【AS3】指定範囲内でマウスから逃げるMC

    現在Flashサイトを製作中の者です。 ActionScript3.0についてご教授ください。 私のレベル:Flashを始めたばかりの初心者です。 使用環境:AdobeFlashCS5、ActionScript3.0 やりたいこと:マウスから逃げる個体MCを作りたい。 例1:マウスから逃げる動き(ttp://por.s54.xrea.com/lab/147/) 例2:沢山のドットがマウスを避ける動き(ttp://wonderfl.net/c/8vSO/) 自分で調べてみて上のようなサイトにたどり着きました。 厳密な伝え方が難しいですが、イメージとしては例1が近いかもしれません。 ・複数ではなく、個体MCで表現したい ・MCはステージ上に予め指定した範囲の外には出ていかない ・開始位置を指定したい こうした動きの場合、どのように記述すると良いのでしょうか。 こうした内容の本か、コードやサンプルがあるサイトを ご存知でしたらお知恵をいただけないでしょうか。 宜しくお願い致します。

  • 【FLASH】コンボボックスがあるとIEでスクロールできない。バグ?

    FLASH8(Win-XP)使用者です。 仕事でFLASHを作っています。 FLASHの中にコンボボックス(UI)が存在しているだけでブラウザ上でマウスホイールでのスクロールができなくなってしまい困っています。(スペースキーでのスクロールも不可) 余裕があれば試していただきたいのですが、 (1)FLASHに単純にコンボボックスを貼り付ける。 (2)SWFをHTMLに貼り付ける。 (3)IEで閲覧 (4)FLASH画像をクリック(アクティブ化) →マウスホイールでブラウザをスクロールできない! といった感じです。 ちなみにNetscape7.1なら問題ありません。 環境は、 IE6 FLASHプレイヤー8 パブリッシュは8で です。 解決策をご存知の方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash 横スクロールしてしまう

    Flash8で作ったものをDreamweaver8で組み込んでサイトを 作ろうとしています。動きの問題上、縦横、画面一杯 Flashになる様にしたかったんです。そういうサイトの ソースを見るとFlashのwidth,height共に100%になっているのですが それが出来なかったのでwidth 1000px,height 600pxで作成しました。 Dreamweaverに組み込んでプレビューした所、お気に入りや履歴ボタンを押して左に表示させると左右のスクロールバーが出てしまいます。 テーブルやスペーサーでも解決できず・・・ 今更サイズ変更も 厳しいので、解決方法を宜しくお願い致します。

  • 座標の移動指定について教えてください

    初歩的な質問で申し訳ありませんが、 ボタン操作によって上下にスクロールするループ画像が作りたいです 見える範囲(ステージ)が縦幅300pxなのに対し、(ムービー クリップに設定した) 縦幅500pxの画像と、押すたびに画像を 20pxずつ上と下に動かすための ▲(上用)▼(下用)2つの ボタンを配置します。 ボタンを操作して画像を初期の座標(たとえばy.100)から 上下に動かし、ステージの上端か下端で 画像が見切れそうな 位置(たとえばy.200、もしくはy.0)にまでついた時に元の 位置(y.100)まで戻り、 ループしてるようなflashが作りたいのです。 onClipEvent (load) {   this.my_mc._y = 100; } if (my_mc._y < 0) {  my_mc._y = 100; } else if (my_mc._y < 200) {  my_mc._y = 100; } ↑のように指定しても思うように動いてくれず、困っております どなたかお力をかしてください…お願いします flash CS3のactionscript2で作業しています