- ベストアンサー
最初に表示した時のマウスの位置を指定したい。
背景に人物画像のムービークリップを配置し、適当な大きさの矩形ムービーを作成、Scriptにて「setMask」と「startDrag("",true)」を記述して、マウスの動きに合わせてマスクが移動するようにしています。 処理自体には何の問題もないのですが、Loadした時点で人物画像の顔の部分にマスクが設定されるようにしたいのですが、マウスポインターを強制的に設定する事は可能なのでしょうか?。 _xmouse,_ymouseを指定してみましたが、意図した座標にマウスポインターを配置する事は出来ませんでした。 どうぞ宜しく御願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
マウスカーソルの位置を保持する _xmouse や _ymouse プロパティは、読み取り専用です。任意の値に書き換えることはできません。 おそらくですが、カーソルがステージ外にあると、ムービー再生直後にマスクがステージ外に出てしまって何も表示されなくなったり(この現象は「ムービープレビュー」で起こるだけで、HTML などで表示する時は起こりません)、思わぬ位置に移動してしまう現象を防ぎたい、とのことではないかと思います。 http://okweb.jp/kotaeru.php3?q=1079105 で、フラグと enterFrame イベントを利用した移動処理をご紹介しました。 このスクリプトで、enterFrame イベントを mouseMove イベントに変更してみてください。マウスが動かされるまでは、最初に配置した位置で止まっているようになります。 「ムービープレビュー」で見ると、ステージ外にマウスカーソルがある場合でも、その座標に合わせてマスクが移動してしまい、何も表示されなくなることがあります。 しかし実際は、特にドラッグなどの処理で動かすムービークリップはステージの外にはみ出せない(ステージの端で強制的に止まる)ようになっています。ですから、HTML やスタンドアロンプレイヤー・プロジェクタで見た時は、カーソルが外に出ていてもマスクは飛び出していきません。 また、ステージ外にカーソルがある状態でマウスを動かしても、mouseMove イベントが発生しない( Flash Player のウィンドウや表示領域から出ているので、当然といえば当然ですが)ため、マスクは移動しません。 ただし、あくまでもムービークリップの中心点がステージから飛び出さないということです。 中心点が中央にあるムービークリップは、ステージの端ギリギリに移動させると、ムービークリップの半分がはみ出して欠けてしまいます。そのために、マスクで表示される部分が通常より小さく見えることも考えられます。 この現象は、移動後に座標をチェックし、マスクがステージの端ギリギリまで移動しないように座標を修正することで回避できます。 マウスカーソルを強制的に配置する方法ではないのですが、ムービー再生直後に、意図しない部分がいきなり表示される現象だけは回避できるかと思います。 よろしければ、ご参考までに。
お礼
お察しの通り、プレビューで確認するとステージで作業していた時のマウス位置に移動してしまう現象を防ぎたいと言う事です。 今まではHTMLで確認するのは、プレビューで思惑通りに動作してからでしたので、プレビューとHTMLで動きが違う事は知りませんでした。 思い通りの動きが出来ました。ありがとうございます。