アクションスクリプトでイージングの設定方法を教えてください

このQ&Aのポイント
  • Flash初心者の方から、アクションスクリプトでイージングのような動きを制御する方法について質問があります。
  • 具体的には、指定したX座標へ移動させる際にイージングを適用するスクリプトの追記方法を知りたいとのことです。
  • 回答者としては、onClipEventを使用してtheX変数を設定し、enterFrameイベント内でイージングを実現する方法を提案します。
回答を見る
  • ベストアンサー

アクションスクリプトでイージング

Flash初心者です。 お聞かせ願いたいのですが、トゥイーンで設定できる イージングのような動きを、スクリプトで制御したく 思っているのですが、方法が分からずにいます。 下記のように、指定したX座標へ移動させる際に イージングを適用させたいのですが、どこにどのような スクリプトを追記すればよろしいでしょうか? onClipEvent (load) { theX = 0; } onClipEvent (enterFrame) { this._x += (theX-this._x)/5; } ご存知の方がおられましたら、回答いただければ幸いです。 よろしくお願い致します。

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Flash8以降を使用していれば、以下のようなクラスが用意されています。 mx.transitions.easing.* Tweenクラスと一緒に使えば簡単に作成できると思います。 http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001500.html

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20060821/246028/
Alan036
質問者

お礼

回答ありがとうございます! 分かり易く解説されたページで とても参考になりました。 早速、試してみたいと思います。

関連するQ&A

  • 移動に関するアクションスクリプトがわかりません

    あるムービークリップをクリックした時にX座標を0の位置にもっていきたいのですが、アクションスクリプトをどう書いたら良いのか分かりません。 瞬間的に移動するのではなくスーッという感じで動かしたいのです。 on (release){ this._x = 0} と onClipEvent(enterframe){ this._x += -2 } これを融合させたような感じにしたいのですが、書き方が分かりません。メインのタイムラインに動くフレームをつくりgotoAndPlay()で飛ばしても良いんですが、アクションスクリプトだけで作ることは不可能でしょうか?

    • ベストアンサー
    • Flash
  • アクションスクリプトについて

    今、毎月決まった日になったら表示させるというのをやりたくて がんばってみたのですがいまいちわかりません。 スクリプトは onClipEvent(load){  stop();  function update(){   var nowDate = new Date();   var Day = nowDate.getDate();   if (Day == 1){    this.gotoAndStop("today");   }else if(Day == 16){    this.gotoAndStop("today");   }else    this.gotoAndStop("a");   } } onClipEvent(enterFrame){ update(); } こんな感じです。(まったく自身がありません。) いまいち変数のところがわかりません。オブジェクトの生成とか・・・ PCの日付の方は変えてありますが、表示がされません。 今後は「次回の何回目は後何日」って感じに出来たらと思っています。 これについてもよかったら何かアドバイスお願いします。

  • アクションスクリプトについて

    onClipEvent (Load) {      this._x = 50;      this._y = 50;   } このコードがactionscript3.0ではエラーになります。3.0に対応する記述方法教えてください。

  • mcのx座標が50以上になったら次フレーム

    タイトルどおり、 mcのx座標が50以上になったら次フレーム という処理をしたく、 mcに次のアクションスクリプトを記述しました。 onClipEvent(enterFrame){ this._x += 10; } onClipEvent(load){ if(this._x >= 50){ nextFrame(); } } しかし何故か次のフレームに行ってくれません。 どこか間違っているのでしょうか。。。 nextFrame();をgotoAndPlay(2);にしても駄目でした。

    • ベストアンサー
    • Flash
  • Action Scriptで

    フラッシュのいろいろのデザインがのってる本で勉強しているんですが、 そのなかのアクションスクリプトの記述に、 onClipEvent (enterFrame) { if (part) { nextFrame(); } else { prevFrame(); } } と書いてある部分がありまして、ifの後のカッコ内の "part"というのがどうしてもわからない・・んです。 べつにどのインスタンス名にもpartと書いていないし、、 if→part というのは、何をしているんでしょうか?? すいません。だれか教えてください。

    • ベストアンサー
    • Flash
  • 角度を指定して回転

    スクリプト1 //////////////////////////////////////////////////////////////// onClipEvent (load) { this.x_rotation = 0; d = 1; } onClipEvent (enterFrame) { this._rotation = _rotation += d; if (this._rotation>=90 || this._rotation<=0) { d = -d; } } //////////////////////////////////////////////////////////////// スクリプト2 //////////////////////////////////////////////////////////////// onClipEvent (load) { this.x_rotation = 0; } onClipEvent (enterFrame) { this._rotation = _rotation += 1; if (this._rotation>=90) { this._rotation = -1; } } //////////////////////////////////////////////////////////////// これは、MCが0度~90度の範囲で行ったり来たりするscriptです。 正常に動かないというわけではありませんが、スクリプト2では、90度に達した後いきなり0度に戻ってしまいます。 90度に達したら80度、70度と0度まで戻って欲しいのです。 なぜdを使うのか、スクリプト2ではダメなのかいまいちよく分かりません。 理由と考え方を教えてください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • FLASHのアクションスクリプトで回転の際の中心点

    FLASHでムービーをつくり、アクションスクリプトを使って回転させました。 onClipEvent(enterFrame){ _rotation += 10; } ちゃんと回転してますが、意図する中心点と違うところを中心点として回転しています。 自分で「ここだ!」と指定することはできますか?

  • FlashMXアクションスクリプトの記述で分からないのですが…

     現在FlashMXのアクションスクリプトを勉強中で購入した書籍に、マウスカーソルを動かすとカーソルに着いていき波紋が広がるというのがあるのですが、マウスカーソルがステージ上からなくなっても波紋が残ってしまいます。この波紋を残さないようにする記述方法をどなたか教えて下さい。WindowsXP環境です。 onClipEvent (load) { if (_name == "mc") { _visible=false; max = 10; //複製する個数 for (i=0; i<max; i++) { this.duplicateMovieClip(i, 100+i);//複製 } } } onClipEvent (mouseMove) { if (_name == "0") {//一つ目のmcはマウスの座標とする _x = _parent._xmouse; _y = _parent._ymouse; } else {//それ以後は自分の名前から-1引いたインスタンス名の座標を取得する _x = _parent[int(_name)-1]._x; _y = _parent[int(_name)-1]._y; } updateAfterEvent(); } と記述されています。インスタンスmcはシェイプトゥイーンで、円が徐々に大きくなり、消えていくアニメーションを設定しています。

  • 動きを伴うフェードインフェードアウトするmcをボタンで制御したい

    4つ前の質問と類似するのですが、四角形のムービークリップを透明度0から100になりつつ移動させたいと思っています。 単純に制御だけするなら onClipEvent (load) { function move() { dx = 10; // x方向の移動量 dy = 0; // y方向の移動量 time = 0; // 時間カウント用 } } onClipEvent (enterFrame) { function move2(){ // 毎フレームごとに移動量を増やしていく dx *= 0.9; dy *= 0.9; // 毎フレームごとに移動量を座標に足しこむ _x += dx; _y += dy; } } で動作したのですが、ボタンを押した時にはじめてこの動きを出したいと思っています。 そこで onClipEvent (load) { function move() { dx = 10; dy = 0; _alpha = 0; time = 0; } } onClipEvent (enterFrame) { function move2(){ dx *= 0.9; dy *= 0.9; _alpha += 5; _x += dx; _y += dy; } } と書いて、ボタンには on(release){ this.player.move(); this.player.move2(); } と書いたところ、それぞれの動きが別になってしまいました。 また、他のボタンを押したときはこれと逆に消えていく動きのあとにこれと同じ動きで四角形が出て来てもらいたいのですがどのようにしたらよろしいでしょうか?どなたかおわかりになる方教えていただきたいです。宜しくお願いします。

    • ベストアンサー
    • Flash
  • アクションスクリプトでのフレーム移動について

    FlashCS3 actionscript2.0で画像が1枚ずつフェードインしてきてサムネイル一覧になるようなものを作っています。 それぞれの写真をレイヤーに分けていれ、ラベルをつけています。 全ての写真インスタンスに飛び先のラベル名だけど変更して、下記のようにアクションスクリプトを記述しました。 ―――――――――――――――――――――――――――――― onClipEvent (load) { this._alpha = 0; } onClipEvent (enterFrame) { if(this._alpha < 100){ this,_alpha += 2; } if(this._alpha >= 80){ _root.gotoAndStop("pic02"); } } ―――――――――――――――――――――――――――――― が、1つめの写真と2つめの写真はフェードインしてきて表示されるのですが、3つめの写真以降が読み込まれません。 ラベルの番号をずらすと、その一の写真は読み込むのですが、次のラベルにはジャンプしてくれません。 原因が分かる方がいらっしゃいましたら、ぜひおしえてください。 よろしくおねがいします。

    • ベストアンサー
    • Flash

専門家に質問してみよう