• 締切済み

画像切り替えのアクションスクリプト

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; }

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

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

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 刻みで動きます。

botancat
質問者

お礼

まさ~~~~~~~に想像どおりの動きです。感激いたしました。またご質問しますのでそのときはよろしくお願いいたします。ご返信遅れて申し訳ございません。

関連するQ&A

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

    ActionScriptを使った音のスクリプトについて勉強しています。ステージ上に二つの音楽プレーヤーを設置し音楽を流す、という事からはじめてみたのですが、上手く行かずに困っています。 設置した音量+/-ボタンを押すと両方の音量が変わってしまったり、片側を再生している状態で、もう一方を再生すると、もう一方は停止してしまったり(目的的には困らないのですが、本来両方とも再生され音がでているのが本来の姿のようなので)、といった状態です。 何かを間違えた理解と書き方をしていると思うのですが、間違いの指摘や音のアクションスクリプトの書き方についてご教授いただければと思い、質問させていただきました。 複数音楽プレイヤーを設置 という事がしたい場合のアドバイスやご教授をいただきたく思います。 よろしくお願いします。 ステージ  MC01(インスタンス名、I_MC01)   L__MC再生ボタン(インスタンス名、I_saisei)   L__MC音量+ボタン   L__MC再生-ボタン  MC02(インスタンス名、I_MC02)   L__MC再生ボタン(インスタンス名、I_saisei)   L__MC音量+ボタン   L__MC再生-ボタン と二つのシンボルがステージ上に配置し、各MCに再生ボタンと音量+/-ボタンを配置しています。 MC01 onClipEvent (load) {    Hsound_MC01 = new Sound(I_MC01);    Hsound_MC01.attachSound("RS_MC01"); } MC再生ボタン onClipEvent (load) {    Hvol= 50; } on (release) {    _root.I_MC01.Hsound_MC01.stop();    _root.I_MC01.Hsound_MC01.start(); } onClipEvent (enterFrame) {    _root.I_MC01.Hsound_MC01.setVolume(this.Hvol); } MC音量+ボタンon (release) {    if (_root.I_MC01.I_saisei.Hvol<100) {       _root.I_MC01.I_saisei.Hvol += 10; } } と書きました。MC02も同じで、01と02が違うだけです。

    • ベストアンサー
    • 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
  • スライドバーのアクションスクリプト

    いつも大変お世話になっております。 伸び縮むサイドバーを作っているのですが、伸ばしたまではいいのですが、元の位置に戻すほうがどうもうまくいきません。 以下、途中まで書いたスクリプトです。 ■.recruit_mcがバーの部分になります。 onClipEvent (load) { _root.recruit_mc._x = 859; _root.recruit_mc._y = 272; } onClipEvent (enterFrame) { rec_to_button.onRelease = function() { _root.recruit_mc.onEnterFrame = function() { if (_root.recruit_mc._x>=620) { _root.recruit_mc._x -= 10; } }; }; } -------------------------------------------------------------- if (_root.recruit_mc._x>=620) { _root.recruit_mc._x -= 10; } の箇所で else を使って、逆の場合をいろいろと書いているのですが どうもうまくいきません。 ボタンを押したら859→620まで移動、またボタンを押したら620→859 まで移動するようにするには、あとどう書き加えればいいですか? ご教授よろしくお願いします。

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

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

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

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

    • ベストアンサー
    • Flash
  • 揺れるスクリプトについて

    こちらで教えていただいたサイトで揺れるスクリプト を勉強していたのですが、 ■をMCにして、  onClipEvent (load) {    this._xscale = this._yscale = 0;    function sMove(mScale,acc,conv) {      theScale = theScale*acc+(mScale-this._yscale)*conv;      this._xscale = this._yscale += theScale;    }  }  onClipEvent (enterFrame) {    if (this.hitTest(_root._xmouse,_root._ymouse,1)) {      sMove(130,0.8,0.2);    } else {      sMove(100,0.8,0.2);    }  } と書いたのですがプレビューすると真っ白なままなにも 表示されません。 なぜなのでしょうか?

    • ベストアンサー
    • Flash
  • swfobject:配置したflash内のボタンをクリックしても反応が無い

    お世話になります。 swfobjectで配置したflash内のボタンが、 マウスオーバーのアクションはしますがその後、クリックしてもリンク先に飛ばずに困っています。 ボタンは以下のような仕組みになっています。 ※配置したムービークリップに、以下のスクリプトを入力してボタンにしています。 onClipEvent (load) { this.stop(); flag = "0"; } on (rollOver) { flag = "1"; } on (rollOut, dragOut) { flag = "2"; } onClipEvent (enterFrame) { if (flag == "0") { this.stop(); } else if (flag == "1") { this.nextFrame(); } else if (flag == "2") { this.prevFrame(); } } on (release) { getURL("http://www.test.com"); } 静止しているボタンのような形のMCにマウスオーバーでアニメーションして(光る等)、 クリックしてリンク先に飛ぶようになっています。 ※swfobjectではなく通常の埋め込み方法では、動作確認済みです。 アニメーションに関係するスクリプトは、この問題に関係ないかとは思いますが、もし何か原因の一つであったらと思い記入致しました。 swfobjectでは、ボタンでリンクするのに何か特殊な事が必要なのでしょうか? それとも、上記スクリプトに何か原因があるのでしょうか? 何か小さな助言だけでも大変助かりますので、 ご存知の方、何卒よろしくお願いします。

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

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

    • ベストアンサー
    • 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の日付の方は変えてありますが、表示がされません。 今後は「次回の何回目は後何日」って感じに出来たらと思っています。 これについてもよかったら何かアドバイスお願いします。

  • 動きを伴うフェードインフェードアウトする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