トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     return functionへの引数の渡し方
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
nacbox
Åê¹ÆNo.46471
投稿日時: 2010-12-2 16:24
新米
居住地: 東京
投稿: 25
使用環境:
return functionへの引数の渡し方
ずっとAS2しか使ってこなかったのですが、AS3で処理しないと難しい個所を含むSWFを制作することになり、急遽、AS3をいじり始めています。
内容的には初心者レベルに当たることだと思うのですが、AS3の内容なので、こちらと初心者の部屋のどちらに投稿すべきか悩んでこちらにしました。
不適切だったら申し訳ありません。

やろうとしていること:
画面内に複数のボタンがあり、それぞれインスタンス名が[Btn0]?[Btn9]の連番になっています。
クリックしたボタン内でラベル"on"にジャンプして、一回前にクリックしたボタンをラベル"off"にジャンプさせます。


var prevNum:int = 1;

for (var i:int = 0; i< 10; i++) {
    var iStr = String(i);
    this["Btn" + iStr ].addEventListener(MouseEvent.CLICK , btnClick(i));
}

function btnClick(i_num:int) {
    return function (event:MouseEvent):void{
        var target : MovieClip = MovieClip( event.currentTarget );
        target.gotoAndPlay("on");
        var prevStr = String(prevNum);
        this["Btn" + prevStr ].gotoAndPlay("off");
        prevNum = i_num;
    }
}


このコードを走らせるとエラーになります。
いろいろコメントアウトしたりして原因を探ったところ、グローバル変数である「prevNum」には
function btnClick()内ではアクセスできるものの
return function()内ではアクセスできない、ということではないかと……。
traceでいろいろな場所から出力してみた感じでは、そんな印象でした。

そもそも上記のコードのアプローチが間違っている、という可能性も多分にあるとは思うのですが、まず、return functionの中にグローバル変数を渡す方法はないでしょうか?
また、グローバル変数への代入も行いますので、単に参照するだけではなく、書き換えも必要と思うのですが……。

AS3に触り始めたのが今日、という状況ですので、手探り状態です。
とんちんかんな質問でしたら申し訳ありません。
どなたかアドバイスしてください。
よろしくお願いします。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » return functionへの引数の渡し方 nacbox 2010-12-2 16:24
     Re: return functionへの引数の渡し方 mayor 2010-12-2 17:20
     Re: return functionへの引数の渡し方 Komatsu 2010-12-2 17:21
     Re: return functionへの引数の渡し方 Fumio 2010-12-2 17:45
     Re: return functionへの引数の渡し方 coppepam 2010-12-2 17:53
       Re: return functionへの引数の渡し方 nacbox 2011-10-20 15:42

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops