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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     for文とボタンアクション
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.11263
投稿日時: 2004-10-3 20:39
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: for文とボタンアクション
用語として、「シンボル名」と「インスタンス名」は、区別しましょう。「シンボル名」は、ActionScriptの制御対象にはなりません。
引用:
gigitさんは書きました:
・ボタンを配置したムービークリップを30個配置。
・ムービークリップのシンボル名には、ID番号を振っている。(mc1、mc2?mc30)
・ボタンのシンボル名は、すべてbt。
・ボタンを押すと、そのボタンを格納しているムービークリップのID番号と同じ数字をtraceで表示。

以下のスクリプトから判断するかぎり、Buttonを配置している(つまりButtonが格納されたMovieClipシンボル内の)フレームではなく、Buttonを格納したMovieClipが配置されているタイムラインのフレームアクションだと思われます。その前提で、回答いたしします。
引用:
というわけで、ボタンを配置しているフレームに、以下のようなスクリプトを記述しました。

フレームアクションの最終行にステートメントを加えると、現状がおわかりになるでしょう。
SetBt();

function SetBt(){
 for(i=1;i<31;i++){
  this["mc"+i].bt.onPress=function(){
   trace(i);  // 変数iはどこの値?
  }
 }
}
i = "I am in "+this;

いってみれば、お小遣いをあげるのに、同一口座(タイムライン)のキャッシュカード(変数i)を複数枚つくって渡しているような状況です。そうではなく、各自の口座にお金を降込んであげる必要があります。
引用:
しかし、これだとどのボタンを押しても、
「31」と表示されてしまいます。
根本的に何かの解釈が間違っていると思うのですが、
どういう方向で解決してよいか分からず、
すこし悩んでおります。

SetBt();
function SetBt() {
    for (i=1; i<4; i++) {
        var _mc = this["mc"+i];
        _mc.i = i;  // 各自の口座に入金
        // this["mc"+i].bt.onPress = function() {
        _mc.bt.onPress = function() {
            // trace(i);
            trace(this._parent.i);  // 各口座の残高を見る
        };
    }
}


----------------
 

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   for文とボタンアクション gigit 2004-10-3 19:18
   » Re: for文とボタンアクション Fumio 2004-10-3 20:39
     これは、僕も陥った salvox 2004-10-6 4:14
       Re: デフォルト参照とthis参照 Fumio 2004-10-6 9:58
       Re: これは、僕も陥った youich 2004-10-6 10:44
         ありがとうございました。 gigit 2004-10-6 21:30
         m(_ _)m 勉強不足でした。 salvox 2004-10-12 4:16

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