電子書籍の厳選無料作品が豊富!

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が定義されていないと出ました。
どう定義させたらいいのでしょうか??

A 回答 (1件)

function moveMC(e:Event):void {


この書き方からすると、なんらかのイベントに関連付けた(addEventListenerした)関数であるように思いますが。
それなら、その関数を停止させたい場面でremoveEventListenerすれば良いだけだと思います。

書かれたソースを見る限り、moveMCはあくまで関数であり、オブジェクトではありません。
オブジェクトではないので、メソッドを定義させる事ができません。
moveMC.stop();は、stopメソッドの呼び出しという意味になるので、存在しないものを呼び出そうとしている間違いですね。

そんな間違いにエラーメッセージが「stopが定義されていない」と出るのだとしたら親切じゃないですね。
それとも、ActionScriptの内部的には関数であってもオブジェクトなのでしょうか?
ま、そんな疑問は余談ですが。

参考URL:http://oshige.com/flash/as3note_cs4/2009/09/-rem …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!