- 締切済み
ゲージと連動したムービークリップのアニメーションを動かす方法
アクションスクリプト初心者です。 サンプルでいただいたムービーを参考に、ファイルを作成しなければならないのですが、うまく動かなくて困っています。 画面に横に長い帯(ゲージ)を置き、その上をマウスで横にスライドさせると、ムービークリップの中のアニメーションがマウスの動きと連動して動くというアニメーションなのですが、うまく動きません。 サンプルでいただいたファイルの帯(ゲージ)の部分、(これもムービークリップです) には -------------------------------------------- onClipEvent (mouseMove) { if (this.hitTest(_root._xmouse, _root._ymouse, true)) { _root.pressure.gotoAndStop(Math.round(((_root._xmouse)/12))); } } -------------------------------------------- と入っていました。 他には、STOPしか入っていませんでした。 数値を変えてみたりしたのですが、アニメーションの途中から動いたり、うまく連動してくれません。 どうやら、サンプルでいただいたムービーと、ファイルサイズが違うことと、新たに作成するファイルは、帯(ゲージ)を画面の右側に置かなければいけないところがうまくいかない原因のひとつかと、わからないながらに思っているのですが・・・; 環境は、Windows2000、FLASHMX2004です。 どなたか、よろしくお願いします。m(__)m
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tomuo
- ベストアンサー率51% (20/39)
こんにちは。 まずこのスクリプトが何をしているのか1行ずつ理解していったほうが良いと思います。 //カーソルが動いた時 onClipEvent (mouseMove) { //カーソル位置がこのムービークリップ上にあるなら if (this.hitTest(_root._xmouse, _root._ymouse, true)) { //ムービークリップ「pressure」のフレーム移動する //移動先のフレーム番号は、カーソルのX座標を12にで割った値 _root.pressure.gotoAndStop(Math.round(((_root._xmouse)/12))); } } ムービーの横幅や、ゲージのX位置が異なれば当然動作も変わってきますので、ご自身が作る内容によってMath.round(((_root._xmouse)/12))の部分を変える必要があります。 Math.round(数値)は数値を四捨五入するという意味です。
お礼
一行一行のスクリプトがなにをしてるのか、よくわかりました! 最後の行を変更しなければいけないとわかるのですが、 どういう計算式を入れればいいのかわからなくて・・。 (なぜ「12」という数字で割っているのかというのが・・?) といわれても、ファイルを見なければわかりませんよね・・。 もう少し、最後の行の式を、変えてチャレンジしてみます。 丁寧な回答、ありがとうございました!
補足
作成するファイルは、X座標が異なっていたので、そのぶんを引いてから割ると、うまくいきました! わかってしまえばそんなことか・・と思いますが、随分悩みました・・。 こうやって上達していくのですね。 アドバイス、ありがとうございました!