• 締切済み

Flachのactionscriptで動いていた人を立止まらせてまた動かす。

人間を歩かせるフラッシュを作りました。 繰り返し同じ所を歩かせたいと思いました。 動かすactionscriptは下記の通りです。 /////////////////////////////////// onClipEvent(enterFrame){ _x -= 1; if(_x <= -40){ _x = 1500; } } /////////////////////////////////// ここからもうひとつ工夫を加えたいと思いました。 内容は下記の通りです。 人間左から歩だします。 ある時点で立止まります。(手を振るなどの動作をする) 一定時間がたった時点でまた歩き出す。 というような動作です。 どうかよきアドバイスをいただけないでしょうか? お願いします。

  • aeic
  • お礼率10% (60/582)

みんなの回答

  • muho
  • ベストアンサー率25% (2/8)
回答No.1

こんにちわ。 ボク的にはスクリプトを使うよりもムービークリップの方が楽そうな気がするのですが、 もしスクリプトでやるのならば、 もう一つ変数を同時に+していき 一定の数字になったときにムービークリップの中身を差し替えて(手を振っているムービー)ると思います。 onClipEvent(enterFrame){ n = 1 _x -= 1; if(_x <= -40){ _x = 1500; } if(n <= 50){ xxxxx.gotoAndPlay(フレーム数); } n++; } こんな感じかな?

関連するQ&A

  • ActionScript

    今日初めてActionScriptをやってみました 疑問に思うことがあり質問させていただきました ○画面の両端まで行くとぶつかって反対側に行くプログラムで onClipEvent(enterFrame){ trace(vX); trace(_x); if(_x > 550){  vX = -vX; } if(_x < 0){  vX = -vX; } _x += vX; } onClipEvent(load){ vX = 1; } if(_x < 0){vX = -vX;} 画面の左端にぶつかって右側に行くときは+ではなく-になるのはなんででしょうか? 右側に行くのでプラスだと思っていました。 プログラム勉強はじめたばかりでわかりません よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップの中フレーム移動を「キーボード」で行いたい!

    FLASH初心者なのですが、ちょっとしたクイズを作らなくてはいけなくて ActionScriptに挑戦しています。 rootにひとつのMCがあります。 このMCのタイムラインにはフレームが7個あり このフレームの移動を「Spaceキー」で動かしたいため rootのタイムラインに下記のようなscriptを書きました。 ------------------------------------- onClipEvent (enterFrame) { this.gotoAndStop(1); if (Key.getCode() == Key.SPACE){ this.gotoAndStop(2); } } ------------------------------------- このコードで「スペース」を押すと1フレームから2フレームへの 移動はできましたが、「スペースを押すたびに次のフレームにいってほしくて、 フレーム7ではストップしてほしい」という動作をさせるためには どうしたらいいのでしょうか? loopとかif...else if...などの構文がよくわからないなりに 試したのですが、うまくいきませんでした。 分かられる方助けてください、よろしくお願いします。

    • ベストアンサー
    • Flash
  • 指定したフレームから再生できない(フラッシュ)

    あるフレームになって時点で指定したフレームに飛び、そこからフレームを再生させようとおもっています。 指定したフレームへ飛ぶ事ができるのですがそこからストップしてしまいます。 どうか打開策を教えて頂けないでしょうか? お願します。 あるクリプトに下記の内容のスクリプトが埋め込まれていてそこで指定したフレームに飛ぶようにしています。 onClipEvent(enterFrame){ _x -= 5; if(_x <= 10){ _root.gotoAndPlay("bbb",11); } if(_x <= -600){ _x = 600; } }

  • MCの~秒後に移動

    winXP flash ver8 を使用しています。 あるMCに下記のスクリプトで任意の箇所に移動するということをしていますが、これを30秒後とかに移動させるということは可能でしょうか。 よろしくお願いいたします。 onClipEvent (load) { targetX = 550; targetY = 30; } onClipEvent (enterFrame) { _x += (targetX-_x)/5; _y += (targetY-_y)/5; }

    • ベストアンサー
    • Flash
  • flash ふわふわした動き

    こんばんは。 flash 特にactionscriptに関しては“超超”初心者です。 現在、サンプルなどを参考にしつつ勉強中なのですが、 さっそくつまづいています…。 画面の中に、円形のムービークリップをおいて、ふわふわした動きを つけたいのです。(目標としては、シャボン玉のような) ただ、位置は動かず、現在地でゆれているような感じです。 以下のような横の動きをつけて左右に動くのはできたのですが、 縦の動きも変えていかないとふわふわした感じになりません…。 本当は円形にまわるような動きがいいのかもしれないのですが、 どうやって動きを指示したらいいのかわかりません。 onClipEvent (load) { this._x = 450; speed = 1; } onClipEvent (enterFrame) { this._x += speed; if (this._x <= 440 || this._x >= 460) { speed = -speed; } } どなたか、よろしくお願いします。

  • ActionScriptで、指定した時間後に次のアクションのとり方

    例えば2秒後に次の行動を取りたい時の質問をしたいのですが、 ある画像を下からフェードインしながら現れて、停止し2秒後にフェードアウトするというアニメーションをActionnScriptで作りたいのですが、 現在は下記のようにスクリプトを組んで、下から上にフェードインしながら画像を読み込むところまではできたのですが次の2秒後にフェードアウトするというのができません。 setIntervalを使うといいのは知っているのですが、それを下記のスクリプトにどのように組んだらできるのでしょうか? わかる方がいたら教えてください、よろしくお願いします。 swfのサイズはw:300、h:100です、ステージにMovieClipを一つ置いてそれに下記のスクリプトを書き込んでいます。 ------------------------------------------------------------------- onClipEvent (load) { this.createEmptyMovieClip("img_load_mc",1); img_load_mc.loadMovie("画像URL"); this._alpha = 0; this._x = 0; this._y = 100; } onClipEvent (enterFrame) { this._alpha += 5; this._y -= 5; if(this._y <0) { this._y = 0; } } ------------------------------------------------------------------- ちなみに作成環境はFlash8 ProでActionScript2.0で作成しています。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash ActionScript

    Flash の ActionScriptについて教えて頂きたいのです。 テキスト入力の内容によって、表示するコメントをかえたり、画面を変えたりしたいのです。 おそらく、onChangedイベントバンドラメソッドにIfによる分岐を組み合わせるのだろうと思うのですが、何度やっても正しく動作してくれません。 やはりコードの打ち方がおかしいのかなあ。 もうこれに何日もかかっていて進歩がありません。 誰か教えて頂ければありがたいのですが。 ちなみに、バージョンはMXです。

  • flashMX ActionScript

    こんにちは、 flashMXのActionScriptを勉強しています。 onClipEvent (enterFrame) { K1 += (K>=360) ? -360 : 10; K2 += (K>=360) ? -360 : 30; //0~360度まで0.2ずつ角度Kを増加 rad1 = K1*Math.PI/180; rad2 = K2*Math.PI/180; //ラジアンに変換 this._x = xPos+200*Math.cos(rad1); this._y = yPos+100*Math.cos(rad2); //それぞれの書く速度に応じて半径200と100の範囲で移動する } 上のスクリプトの K1 += (K>=360) ? -360 : 10; の部分の意味が理解できません。 特に?の記号。 お分かりの方がいましたら教えてください。 よろしくお願いします。

  • 【Key.isDown】

    なんにもインスタンスを持たない【MC】を つくって、下記のソースを実行。 onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { _y -= 1; // 上に移動 } } そうすると↑キーを押すと【MC】が移動するのですが 本来やりたいことの動作確認でしかなく、 gotoAndPlay();を使うのが目的で 別に移動機能は無いものと考えてもらいます。 onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { gotoAndPlay("label"); } } フレームの移動をさせるにはどうすればいいのですか?? 教えてください><

    • ベストアンサー
    • Flash
  • actionscript1.0でJPGを読み込んでるところをSWFに、

    actionscript1.0でJPGを読み込んでるところをSWFに、、、 初心者のため良く分からないため質問いたします。 FLAを開くと設定はFlashのactionscript1.0 パブリッシュ設定がFlash Player8.0でした。 現在上記設定で下記scriptが書かれているものをFlashCS4で開いています。 そして現在3つのJPGを読み込んでいるのですが、そこをSWFに変更したいと考えています。 現在はAS1.0ですが、これを機会にAS3.0に変えたいとも考えています。 どう調べていいか分からないので質問させていただきました。 質問自体よく分からないかもしれませんが、非常に困っています。 よろしくお願いいたします。 onClipEvent (load) { Pass = "img_top_flash/"; Timer = _root.Sec*30; cnt = 0; this._y = 300; //元はthis._y = -20; this.loadVariables( Pass + "top_flash_url.txt"); function loadJPG() { _root.Loaded = false; cnt = 0; if (num == Max) { num = 0; } else if (num<0) { num = Max-1; } depth++; if (depth>1) { _root.mc["m"+(depth-2)].removeMovieClip(); } navi.slider._alpha = 100; mcName = "m"+depth; _root.mc.attachMovie("pic",mcName,depth); _root.mc[mcName].fileName = Pass+picArray[num]+".jpg"; for (i = 0; i < Max; i++) { if (i == num) { navi.mc["b"+i].gotoAndStop(2); } else { navi.mc["b"+i].gotoAndStop(1); } } } } onClipEvent (data) { picArray = files.split(","); Max = picArray.length; for (i = 0; i < Max; i++) { mcName = "b"+i; navi.mc.attachMovie("navi_btn",mcName,i); navi.mc[mcName].num = i; navi.mc[mcName]._x = i*20; } navi.mc.attachMovie("sankaku","sankaku",Max); navi.mc.sankaku._x = Max*20; num = depth = 0; loadJPG(); } onClipEvent (enterFrame) { if (Max>1 && _root.Loaded) { //this._y -= this._y/4; this._y -= this._y/100; if ( this._y <= 280 ) { this._y = 280; } navi.slider._x += (num*20-navi.slider._x)/_root.spd; navi.slider._alpha += (50-navi.slider._alpha)/_root.spd; cnt++; if (cnt>Timer) { num++; loadJPG(); } } }

    • ベストアンサー
    • Flash