• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:as3 e.currentTargetの階層へのアクセス)

ActionScript3でe.currentTargetの階層へのアクセス方法について

screenstarの回答

  • ベストアンサー
回答No.1

はじめに、trace("e.currentTarget.x");ですが trace(e.currentTarget.x)の間違いということで進めます. >親mc、子mcChild←のような階層のムービークリップの場合 mcChildがインスタンス名の場合は以下で 親からの相対位置xが取れます. mc.addEventListener(MouseEvent.CLICK, test); function test(e:Event):void { trace( e.currentTarget.getChildByName("mcChild").x ); }

trfnc223
質問者

お礼

ご回答ありがとうございます! 誤字すいませんでした。 そうやってやるのですね! すいません、では上記を動的に複数のシンボルに適用するには、 引数としてムービークリップ名を渡すしかないってことですよね?

関連するQ&A

  • as3 addEventListenerの動的な生成について

    addEventListenerを動的に生成したいのですが、 下記のコードは動いてくれません。(エラーはないです。) //2つのインスタンスは適当な座標においてあります for(var num=0; num < 2; num++){ var mc = "test"+num+"_mc"; mc = new MovieClip(); mc.addEventListener(MouseEvent.CLICK, move); } function move(event:Event):void{ event.currentTarget.x = 0; } 上記のような場合は、 どのようにすればよいのでしょうか。 ご教授お願いいたします。

    • ベストアンサー
    • Flash
  • AS3のコードをシンプルに

    AS3のコードについてご教授お願いします。 下記のようなコードがあるとします。 btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.addEventListener(MouseEvent.CLICK,cClick); function aClick(e:MouseEvent):void { this.gotoAndPlay("A"); // trace("Aclick"); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.addEventListener(MouseEvent.CLICK,cClick); btnA_mc.removeEventListener(MouseEvent.CLICK,aClick); } function bClick(e:MouseEvent):void { this.gotoAndPlay("B"); // trace("Bclick"); btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnC_mc.addEventListener(MouseEvent.CLICK,cClick); btnB_mc.removeEventListener(MouseEvent.CLICK,bClick); } function cClick(e:MouseEvent):void { this.gotoAndPlay("C"); // trace("Cclick"); btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.removeEventListener(MouseEvent.CLICK,cClick); } btnA_mc.buttonMode = true; btnB_mc.buttonMode = true; btnC_mc.buttonMode = true; この中の、 btnA_mc.addEventListener(MouseEvent.CLICK,aClick); btnB_mc.addEventListener(MouseEvent.CLICK,bClick); btnC_mc.removeEventListener(MouseEvent.CLICK,cClick); のような、重複する部分を、配列か何かでまとめたいのですが、いまいち方法が分かりません。 ボタンAをクリックで、ボタンAは効かなくなる。ボタンBorCをクリックでボタンAが復活みたいな感じです。 宜しくお願いします。 flashCS3 ASはver3.0でお願いします。

    • ベストアンサー
    • Flash
  • AS3のボタンアクションについて

    FlashCS3 ActionScript3.0 ボタンアクションでつまづいています。 http://www.cucinadicasamia.fr/ 上記サイトのように、ボタンをクリックすれば、ダウンの状態を保持、 他のボタンをクリックでダウンの状態を解除。 のようにしたいのですが、上手くいきません。 下記のようにコードを書いたのですが。。。 A_mc.addEventListener(MouseEvent.CLICK,Click); A_mc.addEventListener(MouseEvent.ROLL_OVER,Over); A_mc.addEventListener(MouseEvent.ROLL_OUT,Out); B_mc.addEventListener(MouseEvent.CLICK,Click); B_mc.addEventListener(MouseEvent.ROLL_OVER,Over); B_mc.addEventListener(MouseEvent.ROLL_OUT,Out); function Over(event:MouseEvent):void{ event.target.gotoAndPlay("B"); } function Out(event:MouseEvent):void{ event.target.gotoAndPlay("A"); } function Click(event:MouseEvent):void{ trace("click"); event.target.gotoAndPlay("C"); } A_mc.buttonMode = true; B_mc.buttonMode = true; /////////////////////////////////////////////////////////////////////// function Clickとfunction Overが同時に発生しているので上手くいかないのでしょうか。。。 ご教授お願いいたします。

  • addEventListenerでムービークリップ名を渡す

    AS3です。 複数のムービークリップに対し、 同じ処理をしたいのですが、 下記の書き方だと、かなり効率が悪いのですが、 mc1.addEventListener(Event.ENTER_FRAME, test); function test(event:Event):void{ trace(mc1.x); } mc2.addEventListener(Event.ENTER_FRAME, test1); function test1(event:Event):void{ trace(mc2.x); } functionの方は大体同じ処理なので、 trace(mc1.x);←ここのmc1を動的に 処理することはできないのでしょうか。 やりたいことはこんな感じです。 mc1.addEventListener(Event.ENTER_FRAME, test); mc2.addEventListener(Event.ENTER_FRAME, test); mc3.addEventListener(Event.ENTER_FRAME, test); function test(event:Event):void{ trace(【ここにそれぞれmc1,mc2,mc3が呼ばれる感じ】.x); } ご教授お願いいたします。

    • ベストアンサー
    • Flash
  • ボタンについて(CS4,AS3)

    HPのメニュー用に、クリックするとフレーム移動するボタンを作っています。 フレーム1以外のフレームには、フレーム1に設置してあるボタンで指定したフレームとは異なるフレームに 移動させたいので、新たにフレーム1のボタンとは別のボタンを設置しています。 プレビューでフレーム1のボタンをクリックすると正常に動くのですが、 フレームが移動した後に再度ボタンをクリックすると動かず、全てのボタンが反応しません。 ■フレーム1に設置してあるボタン test_a1.addEventListener(MouseEvent.CLICK , testA1); test_b1.addEventListener(MouseEvent.CLICK , testB1); test_c1.addEventListener(MouseEvent.CLICK , testC1); function testA1(event : MouseEvent) :void{ gotoAndPlay(1); } function testB1(event : MouseEvent) :void{ gotoAndPlay(51); } function testC1(event : MouseEvent) :void{ gotoAndPlay(101); } ※フレーム1、51、101にはstop();で停止するようにしています。 ■フレーム51に設置してあるボタン test_a2.addEventListener(MouseEvent.CLICK , testA2); test_b2.addEventListener(MouseEvent.CLICK , testB2); test_c2.addEventListener(MouseEvent.CLICK , testC2); function testA2(event : MouseEvent) :void{ gotoAndPlay(11); } function testB2(event : MouseEvent) :void{ gotoAndPlay(61); } function testC2(event : MouseEvent) :void{ gotoAndPlay(111); } コンパイルエラーは出ていません。 ネットで調べても何故、フレーム1以外のボタンが動かないのか分かりません。 どなた様か教えていただけると助かります。 使用しているソフトはAdobe Flash CS4で、スクリプトはActionScript3.0です。 よろしくお願いします。

  • マウスクリックで値を送る(AS3.0)

    Flash Pro CS5 AS3.0 で記述しています。 ステージにtest_txt1とtest_txt2を配置し, クリックされたらどちらも同じ関数(testFunc)を呼び出すようになっています。 コードは stop(); test_txt1.addEventListener(MouseEvent.CLICK, testFunc); test_txt2.addEventListener(MouseEvent.CLICK, testFunc); function testFunc(evt:MouseEvent):void{ trace("呼び出された"); } ここで、どちらのテキストをクリックして呼び出されたのかを判断できるようにしたいのですが どのように記述して関数に値を渡すのでしょうか? 試しに以下のように記述したのですができませんでした。 test_txt1.addEventListener(MouseEvent.CLICK, testFunc, 1); test_txt2.addEventListener(MouseEvent.CLICK, testFunc, 2); function testFunc(evt:MouseEvent, val:int):void{ trace("val"); } よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • AS3 記述方法

    ボタンが複数存在し、それぞれのボタンの処理をまとめたい時に どうするか考えています。 たとえばステージに3つのボタンインスタンス 「btn1」「btn2」「btn3」があるとします。 クリックすると、それぞれに応じた値を得るために ------------------------------------------------------------- btn1.addEventListener(MouseEvent.CLICK,syori1); function syori1(eventObject:MouseEvent):void{ trace("あんぱん"); } btn2.addEventListener(MouseEvent.CLICK,syori2); function syori2(eventObject:MouseEvent):void{ trace("しょくぱん"); } btn3.addEventListener(MouseEvent.CLICK,syori3); function syori3(eventObject:MouseEvent):void{ trace("カレーぱん"); } ------------------------------------------------------------- としているのですが、 たとえばもしこれが100個のボタンがあれば 100回同じような事を記述しないといけないので あまりよろしくないな・・・と思い、 ------------------------------------------------------------- for(var i=1; i<=3 i++){ this["btn"+i].addEventListener(MouseEvent.CLICK,syori); } function syori(eventObject:MouseEvent):void{ trace("ジャム"); } ------------------------------------------------------------- としたのですが、これではどのボタンをクリックしても"ジャム"がトレースされます。(当然ですが・・・) このような時、まとめて記述するにはどうすればよいでしょうか?

  • flashcs4 as3.0のエラーについて

    フレーム1にボタンを配置して ボタン(myb)を押すと、ボタンが消えると同時にマウスがmc表示に変わり mcをドラッグしてmc1に当たると、フレーム2の画面が表示するようにしたいのですが ムービープレビューして試してみると、フレーム2の画面(TツールでCLEARを書いているだけ)は表示するのですが、次のエラーが表示されてしまいます。 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」 どのように回避したらよいのでしょうか。よろしくお願いいたします。 stop(); mc.visible=false; myb.stage.addEventListener(MouseEvent.CLICK, mystart); function mystart(event){ myb.visible=false; Mouse.hide(); mc.visible=true; mymouse(event); } mc.stage.addEventListener(MouseEvent.MOUSE_MOVE,mymouse); function mymouse(event):void{ mc.x = stage.mouseX; mc.y = stage.mouseY; event.updateAfterEvent(); } mc.stage.addEventListener(Event.ENTER_FRAME,mymc); function mymc(e:Event):void{    if(mc1.hitTestObject(mc)){ gotoAndStop(2); } }

    • ベストアンサー
    • Flash
  • actionscript3.0で親階層にあるインスタンスの中のものを操

    actionscript3.0で親階層にあるインスタンスの中のものを操作したいのですが、うまくいきません。 具体的には、ボタンをクリックすると、ひとつ上の階層にある「aa_mc」の100フレームへgotoAndPlayするとしたいのですが、 スクリプトは以下の通りです。 //////////////////////////////////////////////////////// btn_mc.addEventListener(MouseEvent.CLICK, onClick); function onClick (eventObject:MouseEvent) :void { MovieClip(parent).aa_mc.gotoAndPlay(100); } //////////////////////////////////////////////////////// どなたかご教授お願いいたします。

  • 関数を停止するには。。。。

    function moveMC(e:Event):void { if (mc.x<550) { if (mc.x<cnt*50) { mc.x+=30; mm.x+=30; } moveMCを止めたいので b1.addEventListener(MouseEvent.MOUSE_OVER, mcstop); function mcstop(event:MouseEvent):void { moveMC.stop(); } としたら1061エラーでstopが定義されていないと出ました。 どう定義させたらいいのでしょうか??

    • ベストアンサー
    • Flash