• ベストアンサー

AS3.0で地面にバウンドするように落下させたい

浩太と申します。 FLASHQ&Aで紹介されたNo.904↓ http://hfm-kenchan.com/Lesson/contents/index.htm ※No.904を、クリックして頂ければと思います。 を、AS3.0で対応したいのですが、どうしてもうまくいきません。 ↓ように、記述してみましたが、stopせずに、永遠とバウンドしたままとなってしまいます。 どうかご教授下さい。 addEventListener(Event.ENTER_FRAME, onEnterframe); stop(); function onEnterframe(event:Event):void { //初期Y座標配置幅 var yPos = 300; //初期速度 var spd = 5; //重力 var g = 2.5; //跳ね返り係数 var k = 0.9; //空気抵抗 var t = 0.99; //地面のY座標値 var base = 250; var dy = Math.floor(Math.random()*190); ball.y = dy; base = base-stage.stageHeight/2; spd = spd*t+g; dy += spd; if (dy >= base) { dy = base; spd = -spd*k;  } }

  • Flash
  • 回答数3
  • ありがとう数4

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

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

#1の方ではありませんが... > 下記のように記述したら、解決しました! それは何よりです。 > もし、下記の記述方法を、よりコンパクトに出来る等ありましたら、 サンプルのオリジナルになるべく近い形で直訳っぽいことをすると次のようになります。 まず,各ボールのムービークリップ(以下MCと略します)自体に書いてあるスクリプトを全て消します。 (onClipEvent(load){…} や onClipEvent(enterFrame){…} など全部です。) 当然ですが,パブリッシュ設定でFlashタブより ActionScript の バージョンを ActionScript 3.0 に設定しておきます。 そして,各ボールを選択した状態でプロパティパネルより 各MC1つ1つに別々のインスタンス名を付けます。 ここでは,5つのボールMCがあったとして, それぞれに 「mc0」 「mc1」 「mc2」 「mc3」 「mc4」 というインスタンス名を付けることにします。 それら 「mc0」~「mc4」 が存在するタイムライン(例:rootのタイムライン)のキーフレームに 次のようなスクリプトを書けば(コピペすれば)完成です。 ------------------------------------- //フレームは1つなのであってもなくても良い) //this.stop(); // 「mc0」~「mc?」の ? の数を設定(例:「mc4」まで) var last:int = 4; // 初期Y座標配置幅 var yPos:Number = 300; // 初期速度 var spd:Number = 5; // 重力 var g:Number = 2.5; // 跳ね返り係数 var k:Number = 0.9; // 空気抵抗 var t:Number = 0.99; // 地面のY座標値 var base:Number = 250; // バウンドさせる関数「boundBall」を定義 function boundBall(evt:Event):void{ evt.target.spd = evt.target.spd*t+g; evt.target.dy += evt.target.spd; if (evt.target.dy >= evt.target.base) { evt.target.dy = evt.target.base; evt.target.spd = -evt.target.spd*k; } evt.target.y = evt.target.dy; } // 「mc0」~「mc?」に関するループ for(var i:int = 0; i<=last; i++){ this["mc"+i].y = this["mc"+i].dy=-Math.floor(Math.random()*yPos); this["mc"+i].spd = spd; this["mc"+i].base = base-this["mc"+i].height/2; this["mc"+i].addEventListener(Event.ENTER_FRAME,boundBall); } -------------------------------- スクリプトはコレ↑1つだけですから, 元のサンプルのように複雑ではありません。 例えば20個のボール「mc0」~「mc19」作成した場合は, 最初の行の,   // 「mc0」~「mc?」の ? の数を設定(例:「mc4」まで)   var last:int = 4; の部分を   // 「mc0」~「mc?」の ? の数を設定   var last:int = 19; に変更すれば良いだけです。 =*=*=*=*=*=*=*=*=*=*=*=*= 【参考図↓】

ikam2010
質問者

お礼

本当に丁寧な解説、ありがとうございます!! 理解できました。 this["mc"+i] といった形にして、ループさせる方法は、勉強不足の為に、思いつきませんでした。。 ありがとうございました!!

その他の回答 (2)

回答No.3

解決したようなところにおせっかいですが 1の方への返答に書かれたコード 同じようなものを作った事があるんですが これだと重力の値が高いとき地面でガタガタしません? たとえば地面に接触している時を考えた時 地面に接触しているのに重力分加速して 地面からはねることになるはずです 簡単に言うと 地面にぶつかって押し戻された分 つまり、なかったことにされた時間の分まで 加速されているから永遠に止まらない ってことです これを回避するには 簡単な方法だと速度がある程度以下なら 0にしてしまい、加速もしないようにする ある程度ちゃんとするなら 本来すすむはずだった距離と 押し戻された距離を考慮して 重力加速を減算する というようにやれば良いかとおもいます おせっかいスイマセン

ikam2010
質問者

お礼

ありがとうございます! 参考にさせてもらいます。。

  • 15mm
  • ベストアンサー率65% (65/100)
回答No.1

解説サイトを見てもわかるように、 onClipEvent (load) { 最初に、初期設定 と onClipEvent (enterFrame) { 毎フレーム以下を繰り返し実行 は区別されています。 質問文中のコードはenterframeの中で初期化を行っていますので、 初期化をずっと繰り返すだけとなり「永遠とバウンドしたまま」です。 //初期化処理群 var yPos=300,spd=5,・・・ addEventListener() function onEnterframe(event:Event):void { //バウンドの計算処理のみ } の形に入れ替えてあげれば大丈夫でしょう。

ikam2010
質問者

補足

ありがとうございます。 下記のように記述したら、解決しました! もし、下記の記述方法を、よりコンパクトに出来る等ありましたら、 教えて頂けましたら、幸いです。 // 初期Y座標配置幅 var yPos:Number = 300; // 初期速度 var spd :uint = 5; // 重力 var g:Number = 2.5; // 跳ね返り係数 var k:Number = 0.9; // 空気抵抗 var t:Number = 0.99; // 地面のY座標 var base:Number = 250; var dy:Number; ball_a.y = dy = -Math.floor(Math.random()*yPos); ball_a.spd = spd; ball_a.g = g; ball_a.k = k; ball_a.t = t; ball_a.base = base-ball_a.height/2; ball_b.y = dy2 = -Math.floor(Math.random()*yPos); ball_b.spd = spd; ball_b.g = g; ball_b.k = k; ball_b.t = t; ball_b.base = base-ball_b.height/2; ball_c.y = dy3 = -Math.floor(Math.random()*yPos); ball_c.spd = spd; ball_c.g = g; ball_c.k = k; ball_c.t = t; ball_c.base = base-ball_c.height/2; ball_d.y = dy4 = -Math.floor(Math.random()*yPos); ball_d.spd = spd; ball_d.g = g; ball_d.k = k; ball_d.t = t; ball_d.base = base-ball_d.height/2; ball_e.y = dy5 = -Math.floor(Math.random()*yPos); ball_e.spd = spd; ball_e.g = g; ball_e.k = k; ball_e.t = t; ball_e.base = base-ball_e.height/2; ball_a.addEventListener(Event.ENTER_FRAME,xEnterframe,false,0,true); ball_b.addEventListener(Event.ENTER_FRAME,xEnterframe2,false,0,true); ball_c.addEventListener(Event.ENTER_FRAME,xEnterframe3,false,0,true); ball_d.addEventListener(Event.ENTER_FRAME,xEnterframe4,false,0,true); ball_e.addEventListener(Event.ENTER_FRAME,xEnterframe5,false,0,true); stop(); function xEnterframe(e:Event):void { e.target.spd = e.target.spd * e.target.t + e.target.g; dy += e.target.spd; if (dy >= e.target.base) { dy = e.target.base; e.target.spd = -e.target.spd * e.target.k; } e.target.y = dy; } function xEnterframe2(e:Event):void { e.target.spd = e.target.spd * e.target.t + e.target.g; dy2 += e.target.spd; if (dy2 >= e.target.base) { dy2 = e.target.base; e.target.spd = -e.target.spd * e.target.k; } e.target.y = dy2; } function xEnterframe3(e:Event):void { e.target.spd = e.target.spd * e.target.t + e.target.g; dy3 += e.target.spd; if (dy3 >= e.target.base) { dy3 = e.target.base; e.target.spd = -e.target.spd * e.target.k; } e.target.y = dy3; } function xEnterframe4(e:Event):void { e.target.spd = e.target.spd * e.target.t + e.target.g; dy4 += e.target.spd; if (dy4 >= e.target.base) { dy4 = e.target.base; e.target.spd = -e.target.spd * e.target.k; } e.target.y = dy4; } function xEnterframe5(e:Event):void { e.target.spd = e.target.spd * e.target.t + e.target.g; dy5 += e.target.spd; if (dy5 >= e.target.base) { dy5 = e.target.base; e.target.spd = -e.target.spd * e.target.k; } e.target.y = dy5; } // replayボタンがクリックされたら再度movieを実行 replay.addEventListener(MouseEvent.MOUSE_UP, playMovie); function playMovie(event:MouseEvent):void { play(); }

関連するQ&A

  • AS3でステージのサイズ変えた時にムービークリップが減速して中央に移動

    AS3でステージのサイズ変えた時にムービークリップが減速して中央に移動するFlashの作り方で悩んでいます。 参考にしてるものはこれなんですが↓ http://hfm-kenchan.com/Lesson/sample/centermovie11/top.htm これをActionScript3で作ろうと今現在このようにコーディングをしています。 ※my_mc:ステージ中央にあるムービークリップ stage.align=StageAlign.TOP_LEFT; stage.scaleMode=StageScaleMode.NO_SCALE; stage.addEventListener(Event.RESIZE, resize_control); function resize_control(eventObject:Event):void { my_mc.x = (stage.stageWidth - my_mc.width)/2; my_mc.y = (stage.stageHeight - my_mc.height)/2; const spd:Number=1/5; my_mc.addEventListener(Event.ENTER_FRAME, center_movie); function center_movie(event:Event):void { my_mc.x += ((stage.stageWidth - my_mc.width)/2 - my_mc.x)*spd; my_mc.y += ((stage.stageHeight - my_mc.height)/2 - my_mc.y)*spd; } } 現在はリサイズするとmy_mcはステージ中央にいるのですが参考にしてるものみたいに減速して中央に移動するというものが作れません。 どうしたらいいのかどなたかアドバイスしていただけませんか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • removeChild()についてご教授願います。

    AS3.0の初心者です。 Stratボタン、Stopボタンで以下のスクリプトで表示と非表示を繰返ししたいのですが、 Stopボタンで、単にremoveChild();にしますと、 「#2025: 指定した DisplayObject は呼び出し元の子でなければなりません。」 とエラーとなります。 色々と調べてみたのですが、よく判判りません。 Stopボタンの記述をどの様にすればよいのでしょうか? 初歩的質問で大変恐縮ですが、どうかご教授お願い致します。 [メインスクリプト] var stageH = stage.stageHeight; var stageW = stage.stageWidth; //Stratボタン start.addEventListener(MouseEvent.MOUSE_DOWN,gene); function gene(e:Event):void { for (var i = 0; i < 20; i++) { var mc:Candy = new Candy(); mc.x = Math.random()*stageW + 10; mc.y = Math.random()*stageH + 10; addChild(mc); } } //Stopボタン stop.addEventListener(MouseEvent.MOUSE_DOWN,stp); function stp(e:Event):void { removeChild(mc); この部分がよく判らないのですが、 どの様に記述したら良いのでしょうか? } --------------------------------------- [mc のスクリプト] var mcH:int = this.height; var mcW:int = this.width; var stageH = stage.stageHeight; var stageW = stage.stageWidth; var speedY:uint = Math.random() * 5 + 5; var speedX:uint = Math.random() * 2; addEventListener(Event.ENTER_FRAME,loop); function loop(Event):void { y += speedY; x += speedX; if ( y > stageH ) { y = - mcH; } if ( x > stageW ) { x = - mcW; } } -----------------------------------------

    • ベストアンサー
    • Flash
  • マウスを避けるムービークリップ

    マウスが近づくと逃げるMCを制作しようとしているのですが、 思うようにいかず悩んでいます。 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z という風に並んだそれぞれのアルファベットのMCに マウスが近づくとある一定の範囲の距離を取り、離れると元の場所に戻る… というふうな動きにしたいのです。 今は、 a_mc.onEnterFrame = function () { X=70;//_rootのAのx座標 Y=211;//_rootのAのy座標 var dx = _root._xmouse-this._x; var dy = _root._ymouse-this._y; var kyori = Math.sqrt(dx * dx+dy * dy); var kakudo = Math.atan2(this._y-_root._ymouse,this._x-_root._xmouse); if(kyori<100){ this._x += kyori * Math.cos(kakudo) * 0.05; this._y += kyori * Math.sin(kakudo) * 0.05; this._x = (this._x * 5+X)/6; this._y = (this._y * 5+Y)/6; } }; と記述してマウスと反対方向の動きをさせていますが、 マウスから離れるという動きではないのです…。 分かりづらい説明ですみませんが、ヒントかなにかあれば教えてください。 制作環境は、CS4で、AS2です。

    • ベストアンサー
    • Flash
  • AS2.0からAS3.0にうまく変換できません。

    AS2.0からAS3.0にうまく変換できません。 はじめまして、ActionScriptを勉強し始めたばかりの初心者です。 http://blog.bonkura.jp/2008/07/flash-4.html のページのスクリプトをas3.0に直そうと思って勉強しながらやってみたんですが、 どうもうまくいきません。 書いてみたコードは以下です。 だれか添削してもらえると助かります。宜しくお願いします! stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.LEFT; var bg:MovieClip = new MovieClip(); this.setChildIndex(bg, 1); var bgPic:MovieClip = new MovieClip(); this.setChildIndex(bgPic, 0); bgPattern(); function bgPattern():void{ var myMcl:Loader = new Loader(); var oListener:Object = new Object(); var UrL:URLRequest = new URLRequest(); UrL.url = "http://blog.bonkura.jp/2008/07/08/swf/bg.jpg"; myMcl.addChild(oListener); myMcl.load(UrL, bgPic); oListener.addEventListener( Event.COMPLETE, StageSize); for(var i:Number=0; i<stage.width/100; i++){ for(var j:Number=0; j<stage.height/100; j++){ var bgP:String = "bg"+i+j; bg.addChild(new (getDefinitionByName(bgP))); this.setChildIndex(bgP, i+j*100); bg[bgP].x = i * 100; bg[bgP].y = j * 100; } } } var alphaFlag:Boolean = new Boolean(); alphaFlag = true; bg.addEventListener(Event.ENTER_FRAME, onENTERFrame); bg.addEventListener(Event.RESIZE, bg.resizeHandler); stage.addChild(bg); stage.addChild(bgPic); function StageSize():void{ bgPic.x = (stage.width/2) - (bgPic.width/2); bgPic.y = (stage.height/2) - (bgPic.height/2); } // イベントリスナー function onENTERFrame(event:Event) { if(alphaFlag){ this.alpha -= 5; if(this.alpha <= 0){ alphaFlag = !alphaFlag; } } else{ this.alpha += 5; if(this.alpha >= 100){ alphaFlag = !alphaFlag; } } } function resizeHandler(event:Event = null):void{ bgPattern(); };

    • ベストアンサー
    • Flash
  • Flash AS3 減速運動の不具合の回避方法を教えて下さい

    大重美幸様のAS3.0入門ノートを使って勉強しているものです。 今回その中の「EaseingSimpleクラス」を拡張して、 任意のボタンを押すと、予めそのボタンに引数として登録しておいたステージ上のX座標、Y座標にインスタンスが減速しながら移動するクラスを作ってみました。 そこで問題発生なのですが、 ステージにボタンを二つ以上設置(仮にAとBとします)して、 「Aのボタン」をマウスダウンしてインスタンス(IdoObjとします)の移動開始して、それが指定の座標に到達する前(移動中)に「Bのボタン」を押すと意図しない座標にインスタンスが止まってしまいます。 確実に、インスタンスが静止して、次のボタンを押せば問題は起きないのですが、移動先をすぐに変更させる動きを付けるにどうしたらよいのでしょうか? よろしくお願いいたします。 タイムラインのフレームアクション idoObj→移動するインスタンス btA→ボタンA 100,100→btAが渡すX座標,btAが渡すY座標 btB→ボタンB 200,200→btBが渡すX座標,btBが渡すY座標 ********************************************************** var btObj:idoStage=new idoStage(idoObj,btA,100,100); var btObj2:idoStage=new idoStage(idoObj,btB,200,200); ********************************************************** 今回作製したidoStageクラス(下記のEaseingSimpleクラスを拡張) ********************************************************** package{ import flash.display.MovieClip; import flash.events.MouseEvent; import EaseingSimple; public class idoStage extends EaseingSimple{ var my_mc2:MovieClip;//任意のボタン var zahyoX:Number;//x座標 var zahyoY:Number;//y座標 //コンストラクタ function idoStage(mc:MovieClip,mc2:MovieClip,stgX:Number,stgY:Number){ super(mc); my_mc2=mc2; zahyoX=stgX; zahyoY=stgY; my_mc2.addEventListener(MouseEvent.MOUSE_OUT,onOUT); my_mc2.addEventListener(MouseEvent.MOUSE_OVER,onOVER); my_mc2.addEventListener(MouseEvent.CLICK,onCLICK); } public function onOUT(event:MouseEvent):void{ my_mc.stop(); my_mc2.buttonMode=false; my_mc2.alpha=1; } public function onOVER(event:MouseEvent):void{ my_mc2.buttonMode=true; my_mc2.alpha=0.5; } //引数で受け取った座標を「EaseingSimpleクラスのeaseTo」に渡してイーズする public function onCLICK(event:MouseEvent):void{ easeTo(zahyoX,zahyoY); my_mc2.buttonMode=true; my_mc2.alpha=0.3; } } } ********************************************************** EaseingSimpleクラス (ステージをクリックするとその位置にインスタンスが減速しながら移動します。) ********************************************************** package { import flash.display.MovieClip; import flash.geom.Point; import flash.events.Event; public class EaseingSimple { var my_mc:MovieClip; var endPoint:Point; //コンストラクタ function EaseingSimple(mc:MovieClip) { my_mc = mc; } //イーズ開始 public function easeTo(end_x:Number, end_y:Number):void { endPoint = new Point(end_x, end_y); my_mc.addEventListener(Event.ENTER_FRAME, easeStep); } //繰り返しステップ private function easeStep(event:Event):void { var mcPoint:Point = new Point(my_mc.x, my_mc.y); //2点間の距離 var distance:Number = Point.distance(mcPoint, endPoint); if (distance>1) { var tmpPoint:Point = getTmpPoint(); my_mc.x = tmpPoint.x; my_mc.y = tmpPoint.y; } else { my_mc.x = endPoint.x; my_mc.y = endPoint.y; my_mc.removeEventListener(Event.ENTER_FRAME, easeStep); } } //座標計算 private function getTmpPoint():Point { var tmpX:Number = my_mc.x + (endPoint.x - my_mc.x) * 0.3; var tmpY:Number = my_mc.y + (endPoint.y - my_mc.y) * 0.3; var tmpPoint:Point = new Point(tmpX,tmpY); return tmpPoint; } //イーズ中断 public function stop():void { my_mc.removeEventListener(Event.ENTER_FRAME, easeStep); } } } ********************************************************** 製作環境 FlashCS3

    • ベストアンサー
    • Flash
  • 【as3.0】for~文で変数に連番を適用したい

    初めてAS3.0を使用してゲームを作成しています。 5枚のムービークリップの位置をシャッフルしたいのですが、 シャッフルさせるイベントをそれぞれのムービークリップに適用させることが出来ずに困っています。 以下、現在のスクリプトです。 import flash.events.Event; var mixarrayX:Array = [0,60,120,150,200];//x位置のパターン var mixarrayY:Array = [0,20,50,80,90];//y位置のパターン this.addEventListener(Event.EXIT_FRAME,syaful); function syaful(e:Event):void { //ランダムで位置のパターンを抜き出す var syafulPTX1:int = (Math.random() * mixarrayX.length); var syafulPTY1:int = (Math.random() * mixarrayY.length); //カードの位置【x,y】を当てはめる var mix1:Array = [mixarrayX[syafulPTX1], mixarrayY[syafulPTY1]];   //MC1に抜き出した位置を適用させる MC1.x = mix1[0]; MC1.y = mix1[1]; //今回のパターンを配列から抜き出す。 syafulPTX1 = mixarrayX.shift(); syafulPTY1 = mixarrayY.shift(); } removeEventListener(Event.EXIT_FRAME,syaful); } for文を使って各変数の「1」等のナンバーにiを適用させて、ループさせれば良いとは思うのですが、 ["MC"+i]等と入力してもエラーになってしまいます。 for文で変数を宣言する場合の正しい書き方を教えていただけると助かります。 何卒、よろしくお願い致します。

    • ベストアンサー
    • Flash
  • AS3.0にて。。

    AS3.0にて。。 先日本を参考に下記スクリプトを記述しました。 ほとんどのブラウザでは問題なく動作するのですが、 WINDOWSのIE6でのみローディングバーが表示されたまま止まってしまう事があります。 どなたが原因が分かりそうでしたら教えていただけないでしょうか? stop(); var _loaderInfo:LoaderInfo = this.loaderInfo; _loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); _loaderInfo.addEventListener(Event.COMPLETE, onLoaded); function onProgress(event){ var percent = Math.floor(_loaderInfo.bytesLoaded / _loaderInfo.bytesTotal * 100); loadingBar.percent_txt.text = String(percent); loadingBar.loaded_mc.scaleX = percent/100; }; function onLoaded(event) { _loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress); _loaderInfo.removeEventListener(Event.COMPLETE, onLoaded); this.play(); };

    • ベストアンサー
    • Flash
  • classを作ったのに動きません。

    現在classについて勉強中なのですが、自分の書いたスクリプトで実行すると「classを読み込めませんでした」とのエラーが帰ってきます。 何が原因なのか探してみたのですが、いまだにわかりません。 わかる方は教えていただけないでしょうか? ちなみに下に書いてあるスクリプトはclassとそれを動かす新規ファイル「rotation.fla」の1フレーム目に記述したものです。 ステージにはムービークリップ「bar_mc」と「center_mc」が置かれています。 //MyClass01クラス class MyClass01 { var mc:MovieClip; function MyClass01(target:MovieClip) { mc = target; } function circle(x:Number, y:Number, r:Number, d:Number):Void { mc._rotation += d; var rad = mc._rotation * Math.PI / 180; mc._x = x + r * Math.cos(rad); mc._y = y + r * Math.sin(rad); } } rotation.flaの1フレーム目 var barObj:MyClass01 = new MyClass01(bar_mc); bar_mc.onEnterFrame = function() { var x = center_mc._x; var y = center_mc._y; var r = 100; var d = 10; barObj.circle(x, y, r, d); };

    • ベストアンサー
    • Flash
  • 円をランダムで描画していき、最初の円から徐々に透明になる

    現在AS3.0にてランダムで永遠と円を描きながらも、描画した円から順番に透明になっていくスクリプトを書いているのですが、以下のスクリプトですと全体が透明になっていき、最終的に何も残らなくなってしまいます。 常に透明度1の円を描画しつつも、先に描画した円から徐々に透明になっていくスクリプトにするにはどうすればよいのでしょうか?ご教授お願いできればと思います。 addEventListener(Event.ENTER_FRAME, rain); import flash.display.Sprite; import flash.display.MovieClip; var mySprite:Sprite = new Sprite(); var myClip:Sprite = new Sprite(); addChild(myClip); function rain(event:Event):void { with(mySprite.graphics) { var circle:int = Math.floor(Math.random()*100); var stageX:int = Math.floor(Math.random()*stage.stageWidth); var stageY:int = Math.floor(Math.random()*stage.stageHeight); beginFill(0x000000); drawCircle(stageX, stageY , circle); endFill; myClip.addChild(mySprite); var diff:Number = 0.01; myClip.alpha -= diff; } }

    • ベストアンサー
    • Flash
  • AS3でうまく動作しません

    使用環境 Mac OSX Flash CS4 下記スクリプトを1フレーム目に記述し、 動作確認をしたところmcの縦の長さが伸びたり縮んだりといった意図しない 動作をしてしまいます。 mcの大きさは幅200px高さ100pxです。 よろしくお願いいたします。 var mc:MovieClip = new test_mc(); addChild(mc); mc.x = 100; mc.y = 100; var testNum:Number = 1; mc.addEventListener(Event.ENTER_FRAME,testEF); function testEF(evt:Event):void { mc.y += testNum; if(mc.y <= 0 || mc.y >= 400){ testNum *= -1; } }

    • ベストアンサー
    • Flash

専門家に質問してみよう