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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     連番でたくさんあるボタンの処理を、カンタンに定義したい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
larrabie
Åê¹ÆNo.40891
投稿日時: 2008-11-29 14:10
新米
居住地:
投稿: 3
使用環境:
Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい
gaienboyさん、野中さん、こんにちわ。
レスありがとうございます。

質問の仕方がわるく大変失礼いたしました。
AS3でどこまで試したかを書かなかったので、まるで丸投げの質問のようになってしまってました。

実は、質問させていただいたあと、やりたいこととしては自己解決しました。
ですがこの場をのりきれればいいやというよりは、今後のために考え方から勉強していきたいので
おかしいところがありましたらご指摘いただけるとうれしいです。

まず、質問の段階では

for(var i:int = 1; i<=30; i++ ){
	this["btn"+i].addEventListener(MouseEvent.MOUSE_UP, myFunc); //←☆
}

function myFunc(e:MouseEvent):void{
	//
}

☆のところでmyFuncにiを引数で渡すにはどうしたらよいのだろう・・と思っていたのですが
引数でなくても、リスナーを呼んだオブジェクトの名前からmyFunc側で「i」を判別すればいいのでは?
という発想で

for(var i:int = 1; i<=30; i++ ){
	this["btn"+i].addEventListener(MouseEvent.MOUSE_UP, myFunc);
}

function myFunc(e:MouseEvent):void{
	var namestr:String = e.target.name;
	var id:String = (namestr.length < 5) ? namestr.substr(3,1) : namestr.substr(3,2);
	trace(id);
}

とし、btnXをおしたときmyFuncがXにひもづいた処理をするということができるようになりました。

これは野中さんのおっしゃっている
引用:

ひとつご注意として申し上げるなら、マウスイベントに設定した(コールバックまたはリスナー)関数内におけるthisの参照先が、ActionScript 3.0では2.0とは変わりました。そのため、関数が受取るイベントオブジェクトのcurrentTargetプロパティからDisplayObject.nameプロパティを取得すればよいと思います。

に当てはまりますでしょうか。

また、引き合いに出させていただいた以前のスレッドではClass自体が1?100で自動生成されるため
引数を受け取れない(今回の私のパターンとは違う)という認識であっていますでしょうか。


今回のパターンで☆のところで引数を渡すやり方、今後別の機会でもはまりそうなのでできれば教えていただけたらと思います。

また、AS2の書き方の方でいただいたご指摘ですが
>gaienboyさん
この書き方のほうが短くてシンプルですね。参考にさせていただきます。
なんとなくnameをsubstrでちょんぎるか、nameの数字のまえに_をいれてsplitするやりかたがくせになっていました。

>野中さん
引用:
ところで、インスタンス名の文字数は4?5で10よりつねに小さいでしょうから、すべてのインスタンス名に共通な"btn"の"t"が必要なのですか?

数値ところどころおかしかったです。。(汗)すみません。


いろいろとありがとうございます。
よろしくお願いいたします。


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

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

題名 投稿者 日時
   連番でたくさんあるボタンの処理を、カンタンに定義したい larrabie 2008-11-28 15:25
     Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい gaienboy 2008-11-28 17:23
     Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい Fumio 2008-11-29 1:05
       Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい kingofkofs 2008-11-29 13:50
         Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい larrabie 2008-11-29 14:34
           Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい kingofkofs 2008-11-29 14:44
             Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい Fumio 2008-11-29 15:01
               Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい kingofkofs 2008-11-29 20:05
   » Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい larrabie 2008-11-29 14:10
       Re: 連番でたくさんあるボタンの処理を、カンタンに定義したい Fumio 2008-11-29 14:55

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