• ベストアンサー

関数を停止するには。。。。

function moveMC(e:Event):void { if (mc.x<550) { if (mc.x<cnt*50) { mc.x+=30; mm.x+=30; } moveMCを止めたいので b1.addEventListener(MouseEvent.MOUSE_OVER, mcstop); function mcstop(event:MouseEvent):void { moveMC.stop(); } としたら1061エラーでstopが定義されていないと出ました。 どう定義させたらいいのでしょうか??

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

function moveMC(e:Event):void { この書き方からすると、なんらかのイベントに関連付けた(addEventListenerした)関数であるように思いますが。 それなら、その関数を停止させたい場面でremoveEventListenerすれば良いだけだと思います。 書かれたソースを見る限り、moveMCはあくまで関数であり、オブジェクトではありません。 オブジェクトではないので、メソッドを定義させる事ができません。 moveMC.stop();は、stopメソッドの呼び出しという意味になるので、存在しないものを呼び出そうとしている間違いですね。 そんな間違いにエラーメッセージが「stopが定義されていない」と出るのだとしたら親切じゃないですね。 それとも、ActionScriptの内部的には関数であってもオブジェクトなのでしょうか? ま、そんな疑問は余談ですが。

参考URL:
http://oshige.com/flash/as3note_cs4/2009/09/-removeeventlistener.html