- 締切済み
Flashウィンドウ内におけるマウスポインタの移動速度を遅くするには?
最近、Flashの勉強を始めたばかりです。ソフトは「Flash CS3 Pro」を使っております。 ソフトの使い方も覚えてようやく慣れてきたので,なにか作品を作りながらActionScriptについても覚えていきたいと思いました。 そこで質問はタイトルの通りなのですが、Flashウィンドウ内におけるマウスポインタの移動速度を遅くするには、どのように記述すればよいのでしょうか?(AS2またはAS3でお願いします。) 具体的に作りたいものは、普通のマウスを利用したペンタブレットのようなものです。 理想は、手元マウスでの作業スペースを指定して(例えば、縦50cm×横50cm のように)、座標変換でFlashウィンドウサイズと相対させたいです。 これだと質問内容と変わってきてしまうかもしれませんが、こちらの回答も頂けると嬉しいです。 色々と本やネットで探してみたのですが、期待する情報が得られなかったので、ここに質問させていただきました。 みなさん、どのような意見でも構いませんので、回答よろしくお願いいたします!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ryo2501
- ベストアンサー率46% (15/32)
flashにマウスポインタの移動を遅くする機能は用意されていないと思うので mc[pointer]←ポインターのムービークリップ Mouse.hide(); pointer.addEventListener(Event.ENTER_FRAME , pointerMove); function pointerMove(e :Event) :void { pointer.x += (mouseX - box.x) / 40; pointer.y += (mouseY - box.y) / 40; } 擬似的にポインターのMCを関数で追わせる形にして体感速度を遅くするのはどうでしょうか?
お礼
ryo2501様 回答ありがとうございました。 あれから他の方の回答も含めて待ってみたのですが、書き込まれなかったため、お礼を書き込ませていただきます。 良回答のポイントの付け方が不明なため今は付けられませんが、分かり次第付けておきます。 ありがとうございました!
補足
ryo2501様 回答ありがとうございます! 「なるほど~!」と思い、早速AS3でパブリッシュしてみたのですが,以下の部分において次のようなエラーが出てしまいました。 pointer.x += (mouseX - box.x) / 40; pointer.y += (mouseY - box.y) / 40; 1120: 未定義のプロパティ box へのアクセスです。 今回の場合、"box"とは一体何を指しているのでしょうか? よろしくお願いいたします。 また、もう一つの疑問といたしまして、 今回のように、ポインタ速度を遅くする方法を使えば、擬似的に絶対座標系で扱えると思います。 しかしながら、任意の作業スペースを指定してFlashウィンドウサイズと相対させることは不可能なのでしょうか? できましたら、こちらの回答の方もよろしくお願いいたします。