Flash初心者です。
MouseEventについて教えてください。
作業の環境はCS5 AS3です。
下記のソースでbot1を押しても出力結果で[object MovieClip]と
表示されるだけでターゲットのインスタンス名を割り出せませんでした。
MouseEvent.ROLL_OVER等でしたら出来たのですが、
どうしてもCLICKでは上手くいきませんでした。
簡単なことだとは思うのですが、僕には分からなく困り果てています。
どうか教えてください、宜しくお願いいたしす。
============================================
使用ソース
============================================
bot1.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void{
trace(e.target);
}
以上です。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
答え自体は簡単に書けるのですが,
少し模索する方向がずれていらっしゃるように思うので
その点を書きます。
とりあえずは
次のページを良く読んで理解してみてください。
「[AS3] MovieClipインスタンスとインスタンス名」
http://f-site.org/articles/2008/04/19014939.html
=============================
今回のご質問に ただ単に回答するだけでしたら
次のスクリプト↓で終わりです。
------------------
bot1.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void {
trace(e.target.name);
}
------------------
または上記の
trace(e.target.name);
の部分を
trace(e.currentTarget.name);
のようにしても良いです。
=============================
しかし...
「そのインスタンス名を取得して何かメリットがありますか?」
というのが
最初に書いた「[AS3] MovieClipインスタンスとインスタンス名」のページに書かれてあることです。
インスタンス名を取得する必要など普通はないと思います。
たとえば
「bot1 をクリックしたときに bot1 を右に 20px 移動させる」
とします。
その場合は次のようにすれば良いだけです。
------------------
bot1.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void {
e.target.x += 20;
}
------------------
インスタンス名など出てきません。
でも確かにインスタンス名のような名前が必要な場合も出てきますよね。
しかし,その場合も次のようにすれば良いだけです。
------------------
bot1.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void {
var my_mc:MovieClip = MovieClip(e.target);
my_mc.x +=20;
}
------------------
これは
インスタンスを名指しで呼びたいときには
インスタンス名や最初の変数名など関係なく
勝手にインスタンスを参照する変数を作って
その名で呼べば良いでしょう
ということです。
最初に書いたページに書かれてある
「変数によりインスタンスを参照するというのが、ActionScript 3.0の基本だといえます。」
の具体的な一例にもなっています。
話が前後しますが
bot1.addEventListener(MouseEvent.CLICK, onClick);
ここで使っていらっしゃる 「bot1」 も,
この時点ではすでに 「インスタンス名」 ではありません。
この 「bot1」 は
インスタンス名 と同名で自動命名されたそのインスタンスを参照する 「変数名」 なのです【図】↓。
その他 URL
「Adobe ActionScript 3.0* 変数と定数」
http://help.adobe.com/ja_JP/ActionScript/3.0_Pro …
BlurFiltan 様
お忙しい中大変親切にご回答頂きまして
本当にありがとうございます。
インスタンスに対して全然違う考え方をしていました。
教えて頂いたページを何度も呼んでちゃんと
理解していきます。
回答だけでなくインスタンスの概念まで
親切に教えて頂きましてありがとうございました。
これからも頑張って勉強していきます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB.NET】別Formのボタンが押...
-
VB6.0のHideのバグ?
-
ActionScript2.0で画面スクロール
-
別のアプリケーションのテキス...
-
photoshopで書いた四角の枠の中...
-
VB6.0 でメニューを作りたいん...
-
テキストボックスにセルの値を...
-
ボタン自身の画像を変える方法
-
sendAndLoadで
-
C言語でのマウスを移動とマウス...
-
SO-01B(2.3.3)のroot化について
-
マスクをとるとオーバーフロー...
-
テキストボックスの中身をリセ...
-
duplicateMovieClip
-
こういうことをしたいのですが...
-
python ボタンを押すと複数の関...
-
VBScriptでMsgBoxのYesNoボック...
-
MovableTypeの導入について
-
マウス自体の移動量の取得
-
FLASHナビボタンで、アクション...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB.NET】別Formのボタンが押...
-
VB6.0で、フォームから、別のフ...
-
インスタンスとポインタ
-
DataTableの件数を取得したい
-
カーソルを手に変更
-
「Me」を「Form1」にするとエラ...
-
CreateDialogについて
-
SharedObjectについて
-
オブジェクトの重なり順の変更
-
プログラミング、アーキテクチ...
-
VB6.0のHideのバグ?
-
先読み画像を後で生成するMCの...
-
ボタンインスタンスの_nameプロ...
-
クラスのプロパティ一覧を列挙...
-
1000個のMCにa1~a1000のイン...
-
BitmapをIDで指定したい
-
ActionScript3.0で画面を揺らす...
-
Python でシャットダウンのコマ...
-
Win32 API ウィンドウ
-
MouseEventについて教えてください
おすすめ情報