プロが教えるわが家の防犯対策術!

下記のようなことがしたいのですが、
エラーになります。

//空のムービークリップを作成
var mc:MovieClip = new MovieClip();
mc.name = "test";
~中略(画像を読み込んでます)~
stage.addChild(mc);

stage.mc.addEventListener(MouseEvent.CLICK, function(event) {
var theURL:URLRequest = new URLRequest("http://yahoo.co.jp");
navigateToURL(theURL);
});

生成したMCにリンクを張る場合は
どのようにしたらよいのでしょうか。
ご教授お願いいたします。

A 回答 (1件)

stage.mc.addEventListener(…);



これ↑は変です。

mc.addEventListener(…);

このように↑するか,
もしくは test というインスタンス名を使うのでしたら

MovieClip(stage.getChildByName("test")).addEventListener(…);

このように↑するかです。



=================

//空のムービークリップを作成
var mc:MovieClip = new MovieClip();

これ↑の意味は,
  「新しいMC」を作成して,
  変数 mc に,
  その「新しいMC」の参照を代入する。
ということです。

以降「mc」と言えばその「新しいMC」のことを指します。


ですから

> //空のムービークリップを作成
> var mc:MovieClip = new MovieClip();
> mc.name = "test";

ここまでは普通の使い方(普通の「mc」の呼び方)なんです。
また次の

> stage.addChild(mc);

これも普通の使い方(普通の「mc」の呼び方)なんです。

そこまでは,普通に「mc」と呼んでいるのに,
突如

> stage.mc.addEventListener(…);

と変えるのは変でしょう?


大阪府大阪市墨田区田町1-5に光田三郎君という人がいたとします。
この人のことを仮名「A君」ということにします。
「A君」は転校して北海道に行きました。
その後「A君」愛知県に行きました。

北海道にいようとも,愛知県にいようとも,
「A君」は,元の「光田三郎君」を指す仮名です。

北海道に行ったときに勝手に「北海道A君」に変更する方が変です。
そんなことをしたら別人になってしまいます。


> stage.addChild(mc);

で stage に addChild した mc は mc なんです。
他のインスタンに addChild しても mc なんです。
mc は 「新しいMC」 を参照する変数なんです。



「F-site [AS3] MovieClipインスタンスとインスタンス名」
http://f-site.org/articles/2008/04/19014939.html
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!!!

>MovieClip(stage.getChildByName("test")).addEventListener(…);
これが一番知りたかったことです!!!

>で stage に addChild した mc は mc なんです。
>他のインスタンに addChild しても mc なんです。
>mc は 「新しいMC」 を参照する変数なんです。
生成したMCは特にどっとシンタックスでパスをおう必要はないのですね・・・
stageの子に配置したので、
stage.mcとしなければならないのかと思ってました。

非常に助かりました!!!
ありがとうございます!!

お礼日時:2010/04/03 17:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!