• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スクロールボタンの範囲指定)

スクロールボタンの範囲指定

このQ&Aのポイント
  • スクロールボタンの範囲指定を行う方法について説明します。
  • スクロールボタンの範囲指定スクリプトの実装方法を紹介します。
  • カーソルがMC上にある時にのみスクロールボタンが作動する方法について解説します。

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

> カーソルがMC上にある時にしかこのスクリプトを実行しないようにする この MC とは, スクリプト中には存在しない MC としてかまいませんよね。 その MC をまずステージ上に作成します。 見えるのがダメでしたら,透明な塗りとかで作成してください。 そのMCのインスタンス名を「hit_mc」にしておきます。 そして,ステージを横スクロールするメソッドscrollxMC() を次のように変えればできると思います。 //ステージを横スクロールするメソッド function scrollxMC() { with (this) { if (hitMC.hitTest(_root._xmouse, _root._ymouse, true)) { if (_x<(-w)) { _x += scrollWidth; } else if (_x>(Stage.width+w)) { _x -= scrollWidth; } _x -= (_root._xmouse-x0)/60; } } } 参考URL↓ 点とインスタンスとで当たり判定を取る http://hakuhin.hp.infoseek.co.jp/main/as/hittest.html#HITTEST_00 hitTest は レイヤーの上下に関係なく動作しますから, もしご質問の > カーソルがMC上にある時にしか…… この MC が, 複製される MC のことでしたら, その 複製される MC が登場するエリアの一番下のレイヤーにでも, 上記 hitMC を作成していただければ, 簡単に同様のことができると思います。 ====================== 別件ですが, スクリプトに致命傷に近い部分が1箇所(1行)あります。 cnt=math.ceil(stage.width/w)+4;   ↓ 変更! ↓ cnt = Math.ceil(Stage.width/w)+4; Math の M,Stage の S は大文字です。 私は Flash 8 で,質問者様のスクリプトを検証したみたのですが, 「ムービープレビュー」でいきなりフリーズしてしましました。 上の 2文字が原因で cnt の値が正常に得られないので,   //ステージ幅に合わせてムービークリップを複製する   for (i=1; i<=cnt; i++) { } が無限ループになってしまったからです。 バージョンアップを重ねるごとに, だんだんそういう細かい所が厳しくなって来ています。 注意しましょう(お互い)。

tbai4414
質問者

お礼

最初に環境を書くことや返事が遅くなって申し訳ありません。 sassakunさんは覚えていないかもしれませんが、 以前にもわかりやすく、丁寧に教えて頂いた事が記憶に残っています。 今回もおかげさまで思い通りに動かす事ができるようになりました。 verUPが原因でそのようなエラーが発生するようになる可能性がある事も知りませんでした。 重ね重ねありがとうございます。 精進させて頂きます。

関連するQ&A