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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ボタンの名前取得
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
copperroad
Åê¹ÆNo.45016
投稿日時: 2010-5-26 19:16
半人前
居住地:
投稿: 59
使用環境:
Win Xp professional,Flash CS3
IE7.0
ボタンの名前取得
ステージにボタンを複数個配置し、ボタンクリックでそれぞれの名前を取得したい場合、どのように書けばいいでしょうか?

****************************************************
for(var i:int = 1 ; i<=100 ; i++){
this["button"+i].addEventListener(MouseEvent.CLICK , Func);
this["button"+i].buttonMode = true;
}

function Func(evt:MouseEvent):void{
trace(this.name);
}
****************************************************
たとえばtrace(this.name);
だとroot1と返ってきてしまいます。

よろしくお願い致します。
ひろゆき
Åê¹ÆNo.45018
投稿日時: 2010-5-26 19:19
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ボタンの名前取得
何のために「名前」を取得する必要があるのでしょう?
for(var i:int = 1 ; i<=100 ; i++) {
	var btn:MovieClip = this["button"+i];
	btn.addEventListener(MouseEvent.CLICK , Func);
	btn.buttonMode = true;
	btn.name = "btn"+i;
}
function Func(evt:MouseEvent):void{
	trace(evt.target.name);
}


インスタンスの参照が取得できればいいのであれば、それでいいと思いますが、
「何のため」というのが重要だと思います。

AS2.0とAS3.0とは全く異なるものだと思って、
AS2.0の考え方は棚上げする必要があるようにも思います。
ロールオーバーでインスタンス名の取得


----------------
質問する際は、回答者に具体的な情報を与えてください。

copperroad
Åê¹ÆNo.45306
投稿日時: 2010-7-12 20:47
半人前
居住地:
投稿: 59
使用環境:
Win Xp professional,Flash CS3
IE7.0
Re: ボタンの名前取得
返信が遅くなってしまい申し訳ありません。
教えて頂いた方法でインスタンスの名は取得できましたが、それのプロパティを取得することが出来ません。

var xPos;
for(var i:int = 1 ; i<=100 ; i++) {
var btn:MovieClip = this["button"+i];
btn.addEventListener(MouseEvent.CLICK , Func);
btn.buttonMode = true;
btn.name = "btn"+i;
}
function Func(evt:MouseEvent):void{
xPos = evt.target.name;
trace(xPos.x);
}



としても

ReferenceError: Error #1069: String にプロパティ x が見つからず、デフォルト値もありません。
at shopping_fla::MainTimeline/btnRollOver()

というエラーが帰ってきてしまいます。
Stringにプロパティが無いのは理解しているのですが、、、

おっしゃられるように
「何のため」というのが重要ですね。
最終的にプロパティを取得するために各ボタンの名前を取得したいです。
どうすれば可能になるでしょうか?

よろしくお願い致します。
野中文雄
Åê¹ÆNo.45307
投稿日時: 2010-7-12 21:08
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ボタンの名前取得
「名前」は、インスタンスの「プロパティ」です。つまり、すでに「それのプロパティを取得することが出来」ています。逆にいえば、「プロパティを取得するために各ボタンの名前を取得」ことは、必要も意味もありません。
引用:
mayorさんは書きました:
インスタンスの参照が取得できればいいのであれば、それでいいと思いますが、

参考:「MovieClipインスタンスとインスタンス名
引用:
copperroadさんは書きました:
教えて頂いた方法でインスタンスの名は取得できましたが、それのプロパティを取得することが出来ません。
...[中略]...
最終的にプロパティを取得するために各ボタンの名前を取得したいです。
どうすれば可能になるでしょうか?


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

ひろゆき
Åê¹ÆNo.45309
投稿日時: 2010-7-12 21:16
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ボタンの名前取得
//var xPos;
for(var i:int = 1 ; i<=100 ; i++) {
	var btn:MovieClip = this["button"+i];
	btn.addEventListener(MouseEvent.CLICK , Func);
	btn.buttonMode = true;
	//btn.name = "btn"+i;
}
function Func(evt:MouseEvent):void {
	//xPos = evt.target.name;
	//trace(xPos.x);
	var btn:MovieClip = MovieClip(evt.target);
	trace(btn.x);
}


----------------
質問する際は、回答者に具体的な情報を与えてください。

copperroad
Åê¹ÆNo.45310
投稿日時: 2010-7-12 21:25
半人前
居住地:
投稿: 59
使用環境:
Win Xp professional,Flash CS3
IE7.0
Re: ボタンの名前取得
ひろゆき様 野中様

ありがとうございます!
無事目的の動作が確認できました!

そうですね、名前もプロパティですね。
AS3.0の理解が足らず苦戦しています。

var btn:MovieClip = MovieClip(evt.target);
変数にMovieClip自体を代入するということでしょうか。

ありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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