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で質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Excel(エクセル) ユーザー関数の自動計算(excel2003) 1 2023/02/06 06:46
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript javascriptで文字挿入でtoggleみたいなのはありますか? 2 2023/02/14 21:53
- Windows Vista・XP windows xp proが起動しなくなりました 10 2022/05/20 00:49
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- 統計学 統計分析とExcelに詳しい方、何卒よろしくお願いいたします。 6 2022/05/27 10:30
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- Windows 10 クリックボードからの取り込み 4 2023/04/09 15:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング、アーキテクチ...
-
XMLでJPEGスライドを作成_表示...
-
背景画像が拡大縮小しつつ、大...
-
Flashの画面をJPEG画像にしてメ...
-
YOASOBI
-
縦のメニューバー作成方法で困...
-
Pythonのtkinterについて
-
画像表示をアルファでフェード...
-
C# chart controlの透過について
-
複数mcのランダム再生とmc指定...
-
テキストフィールドについてのA...
-
Adobe Flash Player 9 のテキ...
-
全てのテキストボックスをセル...
-
画像切り替えのアクションスク...
-
ラッコって?
-
VBAでホームページからコピーし...
-
100点でクリアする簡単なモグラ...
-
ランダムに4桁の数字を表示する...
-
App store のマークってイルミ...
-
シンボル化解除の方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング、アーキテクチ...
-
VB6.0で、フォームから、別のフ...
-
【VB.NET】別Formのボタンが押...
-
フォームの生成と破棄
-
VB6.0のHideのバグ?
-
DataTableの件数を取得したい
-
インスタンスとポインタ
-
ダミーウインドウ
-
Python でシャットダウンのコマ...
-
画像を一定時間ごとに切り替え...
-
CreateDialogについて
-
「Me」を「Form1」にするとエラ...
-
ウインドウハンドルとインスタ...
-
Flashの画面をJPEG画像にしてメ...
-
背景画像が拡大縮小しつつ、大...
-
【ActionScript】コンボボック...
-
EXEからDLLへ移植
-
携帯Lite1.1用のプログラム
-
new演算子について教えていただ...
-
getURLでの変数の渡し方
おすすめ情報