• ベストアンサー

最初に表示した時のマウスの位置を指定したい。

背景に人物画像のムービークリップを配置し、適当な大きさの矩形ムービーを作成、Scriptにて「setMask」と「startDrag("",true)」を記述して、マウスの動きに合わせてマスクが移動するようにしています。 処理自体には何の問題もないのですが、Loadした時点で人物画像の顔の部分にマスクが設定されるようにしたいのですが、マウスポインターを強制的に設定する事は可能なのでしょうか?。 _xmouse,_ymouseを指定してみましたが、意図した座標にマウスポインターを配置する事は出来ませんでした。 どうぞ宜しく御願いします。

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

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

マウスカーソルの位置を保持する _xmouse や _ymouse プロパティは、読み取り専用です。任意の値に書き換えることはできません。 おそらくですが、カーソルがステージ外にあると、ムービー再生直後にマスクがステージ外に出てしまって何も表示されなくなったり(この現象は「ムービープレビュー」で起こるだけで、HTML などで表示する時は起こりません)、思わぬ位置に移動してしまう現象を防ぎたい、とのことではないかと思います。 http://okweb.jp/kotaeru.php3?q=1079105 で、フラグと enterFrame イベントを利用した移動処理をご紹介しました。 このスクリプトで、enterFrame イベントを mouseMove イベントに変更してみてください。マウスが動かされるまでは、最初に配置した位置で止まっているようになります。 「ムービープレビュー」で見ると、ステージ外にマウスカーソルがある場合でも、その座標に合わせてマスクが移動してしまい、何も表示されなくなることがあります。 しかし実際は、特にドラッグなどの処理で動かすムービークリップはステージの外にはみ出せない(ステージの端で強制的に止まる)ようになっています。ですから、HTML やスタンドアロンプレイヤー・プロジェクタで見た時は、カーソルが外に出ていてもマスクは飛び出していきません。 また、ステージ外にカーソルがある状態でマウスを動かしても、mouseMove イベントが発生しない( Flash Player のウィンドウや表示領域から出ているので、当然といえば当然ですが)ため、マスクは移動しません。 ただし、あくまでもムービークリップの中心点がステージから飛び出さないということです。 中心点が中央にあるムービークリップは、ステージの端ギリギリに移動させると、ムービークリップの半分がはみ出して欠けてしまいます。そのために、マスクで表示される部分が通常より小さく見えることも考えられます。 この現象は、移動後に座標をチェックし、マスクがステージの端ギリギリまで移動しないように座標を修正することで回避できます。 マウスカーソルを強制的に配置する方法ではないのですが、ムービー再生直後に、意図しない部分がいきなり表示される現象だけは回避できるかと思います。 よろしければ、ご参考までに。

teddy1014
質問者

お礼

お察しの通り、プレビューで確認するとステージで作業していた時のマウス位置に移動してしまう現象を防ぎたいと言う事です。 今まではHTMLで確認するのは、プレビューで思惑通りに動作してからでしたので、プレビューとHTMLで動きが違う事は知りませんでした。 思い通りの動きが出来ました。ありがとうございます。

関連するQ&A

  • マウスを追いかける

    ムービークリップがマウスを追いかけるというようにしたいのですが、追いかけるムービークリップが別のシンボルの中にあると座標がずれるようで、このずれをなくしたいのですがどのようにすればよいのでしょうか? 詳しくは、シーン1にシンボル(ただの図形と追いかけてほしいムービー:mc1)を置いて、mc1に下記のスクリプトを書きました。 -------------------------------------------- onClipEvent (load) { _root.mc1.startDrag(true); x = _root._xmouse; y = _root._ymouse; } onClipEvent (enterFrame) { _x += (_root._xmouse-_x)/4; _y += (_root._ymouse-_y)/4; } --------------------------------------------

    • ベストアンサー
    • Flash
  • マウスカーソルについてくる前に左上にいってしまう。

    こんにちは。 マウスカーソルについてくるムービークリップをマスクにして使用したいため、 目的のムービークリップに onClipEvent (enterFrame) { _x += _xmouse/3; _y += _ymouse/3; } というActionScriptを入れました。 きちんと思うように動くのですが、 読み込んだあと、一瞬まず左上に移動してしまいます。 マウスカーソルをうごかして、はじめてマウスカーソルに近づいてきます。 左上に移動してしまうのは格好が悪いので、配置した位置からマウスカーソルに近づいて欲しいのですが、色々調べてもその説明がありません。 どうかよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • マウスポインタがステージ外に出たことを感知

    こんにちは、初めて質問します。 マウスポインタがステージやムービークリップの外に出たことを感知することは可能でしょうか? マウスポインタの後を追いかけるような演出をしたいのですが、ステージ外にマウスポインタがあるときはその演出を消したいんです。マウスポインタが外に出たら_visibleプロパティをfalseしようと思っているのですがその「マウスポインタが外に出たら」というのがむずかしくて・・・ _xmouseや_ymouseをnullにしたら感知するかなと思ったんですが、うまい具合にいかなくて困ってます。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • マウスの移動方向によってマウスカーソルの画像を切り替えたい

    今、マウスカーソルを(右向きの)車の画像にしています。 マウスを右方向に動かしたら、右方向の車の画像にし、逆に左方向に動かしたら左方向の車の画像に切り替える、という処理は可能でしょうか?可能である場合、どのようなスクリプトを書けばよいのでしょうか? マウスのx座標の値の増減で判断する、ということは想像できるのですが、書き方が分かりません。 右向きの車の画像のムービークリップ「car」のインスタンスには、下のスクリプトを記述しています。 onClipEvent (load) { Mouse.hide(); } onClipEvent (mouseMove) { this._x = _root._xmouse; this._y = _root._ymouse; updateAfterEvent(); } バージョンはMXです。 どうかよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • マウスに追従するクリップの範囲について

    はじめて投稿します。初心者ですが、よろしくお願い致します。 マウスに追従するムービークリップについて onClipEvent(enterFrame){ this._x += (_root._xmouse - this._x)/10; this._y += (_root._ymouse - this._y)/10; } としておりますが、マウスがムービーの中に入ったときだけ 反応するようにし、マウスがムービーの外にでるとムービー クリップが定位置に戻るようにしたいのですが よい方法がありましたら教えてください。 定位置に戻るときも追従の流れを残したまま、ゆっくり定位置に 戻るようにしたいと思っております。 よろしくお願いいたします。 Win XP : MX 2004

    • ベストアンサー
    • Flash
  • ActionScript2.0での座標

    ActionScript2.0で、_xmouse、_ymouse でマウス座標を得られますが、_xmouse、y_mouseで得られる座標の単位はいくつになるのでしょうか? _xmouse、_ymouseを画面に出力してみると、起動するフォーム(ムービーのデバック実行時のウィンドウ)の場所によっては、マイナスの値になったりするのですが、起動するフォームの場所によって値が相対的に変わるものなのでしょうか? Windowsのスクリーン座標(0-65535)とは何が違うのかご存知の方がいましたらご教授願います。

    • ベストアンサー
    • Flash
  • ムービークリップの領域をシェイプの形状にしたい

    よろしくお願い致します。 ムービークリップにマウスオーバーするとムービークリップが再生し、マウスアウトすると逆再生するというものを作っています。 ここで、ムービークリップのマウスオーバーする領域を矩形ではなく、見たままの形(シェイプの形状)だけに指定するにはどうすれば良いでしょうか? 現在の状況は、マウスオーバーさせるムービークリップに onClipEvent (load) { this.stop(); } onClipEvent (enterFrame) { if (this.hitTest(_root._xmouse, _root._ymouse, false)) { this.nextFrame(); } else { this.prevFrame(); } } のアクションを書いています。 自分なりに調べたところ、「shapeFlag?というものを使うらしい?」というのは分かったのですが、どう使えば良いのかさっぱり分かりません・・ どなたかご指導頂けないでしょうか。 どうぞよろしくお願い致します。

    • ベストアンサー
    • Flash
  • スクロール画面

    下記内容を参考にまずサンプルを作っています。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=974758 使用versionはMXのバージョン6です。 作成し、パブリッシュすると、スクロールバーは表示でき、クリックするとスクロールバーやスライダは動いたものの、画像(上記参考ページでのムービークリップ「sheet」)が動きません。 手順としては個々のムービークリップを「ムービークリップsheet」に配置し、シーン1で「sheet」を配置しその上にマスクレイヤー、その上にスクリプトレイヤー、一番下にはスクロールバーのレイヤーを配置し、スクロールバーには「sc_bar」のインスタンス名をつけています。配置はX座標0にしていますがマスクの矩形のみ、X座標を0にするとマスク矩形の中心が用紙の左端に来てしまいます。これが何か関係あるのでしょうか。スクロールバーや、ムービークリップ「sheet」はx0地点の用紙の左端に揃っています。ムービークリップが動かない原因として何が考えられるでしょうか?わかる方、すみません、。教えてください。

    • ベストアンサー
    • 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ファイルで作成するしかありません。 メニューが常にスクロールしていて、マウスオーバーした時にのみ動きの速さが変わる様にしたいのです。 宜しくお願い致します。

  • ActionScript2.0

    ActionScript2.0で、_xmouse、_ymouse でマウス座標を得られますが、_xmouse、y_mouseで得られる座標の単位はいくつになるのでしょうか? _xmouse、_ymouseを画面に出力してみると、起動するフォームの場所によっては、マイナスの値になったりするのですが、起動するフォームの場所によって値が相対的に変わるものなのでしょうか?

    • ベストアンサー
    • Flash