• 締切済み

マウスカーソルに応じたmcのスクロール(ループ型)

マウスカーソルに応じて、複数配置してるmcがカーソルに合わせてスクロールして、ステージからはみ出したら、はみ出した側のステージの反対から出てくるっていうscriptを作ったのですが、うまくいきません。ループしてくれないんです。 ---- _root ---------------------- menu.mcというのがあり、そのmcの中にmenu01.mc、menu02.mc、menu03.mc・・・という感じでmcが配置してあります。menu.mc自体に別のスクリプト掛けてるので、こういう形にしてます。 ---- _root>menumc ---------------------- menu01.mcなどそれぞれのmenuのmcが入ってます。 さらに、それぞれのmcの中にscroll.mcというのをおき、そのscroll.mcにscriptが書いてあります。 ---- _root>menu.mc>menu01.mc 内scroll.mcのscript------ _visible = false; center = Stage.width/2; halfWidth = _parent._width/2; this.onEnterFrame = function() {  with(_parent){  //Scroll Speed   if (_root._xmouse<=180 || (_root._xmouse>250) && (_root._xmouse<=429)) {    moveX = (center-_root._xmouse)/15;   }else if(_root._xmouse>180 && _root._xmouse<=250){    moveX = 0;   }   _x = _x+moveX;   //Return Scroll   if(_x > Stage.width+halfWidth){    _x -= _width+Stage.width;   }else if(_parent._x < -halfwidth){    _x += _width+Stage.width;   }  } }; --------------------- で、これだときちんと思ったような動きでスクロールはするんですが、ただループしてくれないんです。しかもスクロールする毎にそれぞれのmcの間隔がずれてる気がします。最悪の場合だと、mcの上に別のmcが重なったりしてます。 なぜ、このような現象になってしまうのでしょうか?

みんなの回答

noname#35109
noname#35109
回答No.1

どんな感じにしてみたいのかが,はっきりとはわかりませんので不十分な回答になると思います。 最後から5行目 } else if(_parent._x < -halfwidth){ の行は,_parent が不要で } else if (_x<-halfwidth) { ではないでしょうか? 一応動きを確認してみましたが,ここを修正すると,ループはしますし,MCどうしの間隔も変にはなりません。 あと,確認ですが >> menu.mcというのがあり、… 「menu.mc」などがインスタンス名ではないですよね。 mcであることを,この説明で強調するために「.mc」を付けられているのですよね。 それと,7行目 if (_root._xmouse<=180 || (_root._xmouse>250) && (_root._xmouse<=429)) ここの書き方が少し変ですが, if (_root._xmouse<=180 || _root._xmouse>250) { の間違いではないでしょうか? 別に元のままでも良いのですが, 元のままだと動きが左右で違うようになるので,ひょっとしたら間違いかもしれないと思って,書かせていただきました。

coder
質問者

補足

えーと、ごめんなさい。 まず「menu.mc」っていうのは、「menu_mc」です。 インスタンス名です。 ループ処理なんですが、やはり上手くいきませんでした。 でも個々のmenu全体をムービークリップで包むのをやめてバラバラの状態でroot階層に置いたら、ループするようになりました。 ただ、それでも位置ずれが起きちゃうんですよね。 ちょっともうちょっと色々やってみます。

関連するQ&A

専門家に質問してみよう