- 締切済み
画像切り替えのアクションスクリプト
3枚以上の画像を右と左に行くボタンで動かし切り替えて生きたいのですが、ちなみに画像の動き方はだんだん遅くなってとまるというのがベストです。 みようみまねでなんとか次のようにできたのですが、3枚以上はできません。 画像を横に並べて一枚にした画像をシンボルに変換し インスタンス名をpicにして次のスクリプトをそのムービークリップに書き込みました。 this._x = -200; this._y = 0; } onClipEvent (enterFrame) { if (flag==1) { dx = (0-this._x)/4; this._x += dx; } if (flag==0) { dx = (200+this._x)/4; this._x -= dx; } } なお、ボタンを2つ作成し、 on(release) { _root.pic.flag = 1; } と on(release) { _root.pic.flag = 1; }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
true と false (または 0 と 1)しか持たないフラグなどという特殊な変数を使うからそうなるだけだと思います。 たとえば dx = (0-this._x)/4; となっている 0 の部分を 0 という数値ではなく普通の変数にしておいて その普通の変数をボタンから操作すれば良いのではないでしょうか。 ムービークリップ自体に書くスクリプト ----------------------------------------------------- // このムービークリップが現れたときに実行 onClipEvent (load) { // 初期 xy座標を指定 this._x = -200; this._y = 0; // 変数 point_x に -200 を代入しておく point_x = -200; } // 1フレーム進む時間ごとに毎回実行 onClipEvent (enterFrame) { // このムービークリップを point_x に近づける this._x += (point_x-this._x)/4; } ----------------------------------------------------- this._x += (point_x-this._x)/4; ↑ ここで ムービークリップの座標を 0 や 200 という固定値に近づけるのではなくて point_x という変数の値に近づけるようにしています。 そしてボタンにはたとえば ------------------------------------ on (release) { // もし pic 内の変数 point_x が -200 より大きいときは if (_root.pic.point_x>-200) { // pic 内の変数 point_x の値を 200 減らす _root.pic.point_x -= 200; } } -------------------------------------- -------------------------------------- on (release) { // もし pic 内の変数 point_x が 1000 より小さいときは if (_root.pic.point_x<1000) { // pic 内の変数 point_x の値を 200 増やす _root.pic.point_x += 200; } } -------------------------------------- と書いておきます。 この場合は point_x が -200~1000 の間で 200 刻みで動きます。
お礼
まさ~~~~~~~に想像どおりの動きです。感激いたしました。またご質問しますのでそのときはよろしくお願いいたします。ご返信遅れて申し訳ございません。