• ベストアンサー

パスの書き方 AS3

シーン1にムービークリップ(インスタンス名mcop)を配置し、mcopの1フレームにムービークリップ(mc)とobject1(グラフィック)を配置、mcの1フレーム目にアクションスクリプト(ActionScript3)を配置します。 アクションスクリプトからobject1を非表示にする指示を出したいのですがうまくできません。 パスの書き方をアドバイスください。(同階層ではうまく非表示に出来ます。) root.mcop.object1.visible = false;  こんな感じでやってみましたがだめでした。

  • Flash
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

> object1(グラフィック)を配置 ここがよくわかりません。 「object1」とは何でしょうか? インスタンス名ですか? 変数名ですか? また「グラフィック」とは何でしょうか? 普通に解釈するなら「グラフィックシンボルに変換したステージ上のグラフィックインスタンス」となりますが その意味のグラフィックならインスタンス名は付けられないと思います。 また普通,ActionScriptで直接グラフィックインスタンスの操作をすることははできません。 上記の「グラフィック」という意味のものではなく ActionScriptで作成した何某かのグラフィックでしたら そのグラフィックを生成したスクリプトなどを書いてもらわないとグラフィックの指す物が何かわかりません。 もし上記の「グラフィック」という意味のものでしたら まずグラフィックインスタンスを用意するのはやめるべきです。 グラフィックインスタンスではなく,インスタンス名を付けることができて ActionScriptで直接操作できるムービークリップ(またはボタン)を用意すべきです。 シーン1(root)にインスタンス名mcopというムービークリップを手動で配置し そのmcopの中にインスタンス名mcというムービークリップを手動で配置し そのmcの中にインスタンス名object1というムービークリップを手動で配置したとします。 ※「手動で」というのは「ActionScriptではなく」という意味です。  root   └mcop(ムービークリップ)     └mc(ムービークリップ)      └object1(ムービークリップ) そして ムービークリップmc 内のフレームにスクリプトを書いて ムービークリップobject1 を非表示にするとします。 その場合は次のようなスクリプトになります。 MovieClip(root).mcop.mc.object1.visible = false; 上記のは root を基準とした絶対パスでの書き方です。 相対パスで書くと次のようにもっと単純になります。 object1.visible = false; または this.object1.visible = false; 「1.5 rootとstage (ActionScript3.0入門ノート)」 http://oshige.com/flash/as3note/2007/04/14_rootstage.html

koocom
質問者

お礼

ありがとうございます。無事解決しました。 object1(グラフィック)は、ボタンでした。記入ミスです。お手間かけました。

その他の回答 (1)

回答No.1

parent.getChildByName("object1").visible=false みたいなカンジで

koocom
質問者

お礼

勉強になりました。ありがとうございます。

関連するQ&A

  • flash ウインドウの大きさを変更しても常に定位置

    falsh8でアクションスクリプトのバージョンは1でわからないことがあるので教えてください。 ステージ上に、 ムービークリップの インスタンス名 mc1 と ムービークリップの インスタンス名 mc2 と ムービークリップの インスタンス名 mc3 を配置しております。 ブラウザのウインドウの大きさを変更しても常に、 mc1 はウインドウの最上部に表示 mc2 はウインドウの中央部に表示 mc3 はウインドウの最下部に表示させたいのですが、どういうスクリプトを書けばよいでしょうか? 教えてください、よろしくお願いします。

  • ActionScript3.0フレーム移動について

    お世話になります。 Flash ActionScript3.0で、ボタンをクリックしたら、 階層違いのシーンに移動するという 単純なところでつまずいています。 一番上の階層には、 1フレーム目 フレームラベル "a" 2フレーム目 フレームラベル "b" として、それぞれ this.stop();を書いてあります。 "a""b"には、それぞれムービークリップが配置してあって、 今やりたいことは、"a"に配置してあるムービークリップの 2つ下(中?)の階層にあるボタンをクリックしたら、一番上の階層の"b"に移動して、 "b"に配置してあるムービークリップを表示するようにしたいのです。 "a"のムービークリップのボタンのあるフレームには、 this.stop(); button01.addEventListener(MouseEvent.CLICK,jumpB); function jumpB(event:MouseEvent):void { MovieClip(parent.parent).gotoAndStop("b"); } と書いてみましたが、 [TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。] と怒られます。 試しに MovieClip(stage).gotoAndStop("b"); とか、"b"に配置してあるムービークリップにインスタンス名"b_mc"を与えて MovieClip(parent.parent).b_mc.play(); などと苦し紛れにやってみましたが、すべて同じように怒られます。 どのようにすれば、下の階層から一番上の階層の別フレームに 移動することができますでしょうか? よろしくお願い致します。

  • ActionScript 孫のパス

    こんにちは。 今Flashを編集しているのですが、(初心者です) ┏━━━━━━━┓ ┃┌─────┐┃ ┃│ mc1_1    │┃ ┃└─────┘┃ ┃           ┃ ┗━━mc1━━━┛ mc~はムービークリップのインスタンス名です。 上のようにmc1の中にさらにmc1_1というムービークリップがある、という形です。 「_root.mc1.mc1_1.onRollOver~」のように指定したイベントが動きません。 (onReleaseも同様) 「_root.mc1.onRollOver~」は正常に動きました。 ただし、 「_root.mc1.mc1_1._visible = ~」のように書くと、ちゃんと動作していました。 この場合どういった原因が思い当たりますか? パスが間違っているんでしょうか… ちなみにCS3、ActionScript2.0です。 よろしくお願いします。

  • Flash オブジェクトの表示/非表示

    こんにちは。今回はオブジェクトの表示/非表示のことに関して質問させていただきます.使っているものは、Mac/FlashCS3/AS1&2 です. (フレーム名"s1"にて) MC(ムービークリップ)/pre_btn(ボタン)/del_btn(ボタン)/btn(ボタン)というオブジェクトが画面に表示してあります. (アクションフレームに) pre_btn.onRelease = function(){   MC._visible = true; } del_btn.onRelease = function(){   MC._visible = false; } (btnムービークリップアクションに) on(release){   _root.gotoAndPlay("s2") } (フレーム名"s2"にて) btn2(ボタン)のみ画面に表示されています. (btn2ムービークリップアクションに) on(release){   _root.gotoAndPlay("s1") } 以上のACを記述しました.これでMCを表示/非表示させることができ,btnをクリックし"s2"フレームに移動/btn2をクリックし"s1"フレームに移動することもできるようになりました. しかし,"s1"にて非表示にしたMCが,"s2"のフレームに移動し"s1"に戻ってきたとき,表示されている状態に戻ってしまいます. どうしたら,一度非表示にしたMCを,その後フレーム移動したとしても,非表示の状態に保つことができるのでしょうか?? どうか,ヒントだけでもいいので,何か教えていただけると嬉しいです. よろしくお願いします.

  • removeChildについて(AS3)

    ActionScript3のremoveChildについて、お教えください。 FlashCS5 windowsです。 どうぞ、よろしくお願いします。 順を追って、ご説明します。 ムービークリップ「テストA」「テストB」「テストC」の3つを作成します。 テストC→プロパティ→ActionScript用に書き出し→クラス で、TestCとクラス名を付けます。 ムービークリップ「テストA」のインスタンス名をtestA_mcとして、ステージに配置します。 testA_mc内のタイムラインに、 //---------- var testC_mc:TestC = new TestC(); addChild(testC_mc); //---------- と記述します。 ムービークリップ「テストB」を、ステージに配置します。 テストB内のタイムラインにremoveChildを書いて、 testA_mc内のtestC_mcをremoveChildしたいのですが、 どのように書けば、良いでしょうか、、、? ※不可能な場合は「不可能」と教えていただけますと、助かります。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ランダムで画像を表示させるには?

    環境はFlashCS5で、アクションスクリプト3.0を使用しています。 5枚の画像(インスタンス名:mc0~mc4)をランダムで表示させるムービーを制作しているのですが、 下記のスクリプトですと、ランダムで画像が表示されるのですが、画像の切り替えがループになってしまって、次から次へとランダムで画像が切り替わります。フレーム1に下記のスクリプトを記述し、フレーム1にムービーインスタンス「mc0」から「mc4」を配置しています。 function randomShowMC():void { for (var i:int=0; i<5; i++) { this["mc" + i].visible = false; } var rnd:int = Math.floor(Math.random() * 5); this["mc" + rnd].visible = true; } randomShowMC(); var myTimer:Timer = new Timer(3000); myTimer.addEventListener(TimerEvent.TIMER ,function(){randomShowMC()}); myTimer.start(); このスクリプトを改良?改造?して、ランダムの画像が1回のみ…つまり、おみくじみたいに、(mc0~mc4の画像を)ランダムで1回のみ画像を表示させたいのです…表示後の画像が切り替わらずそのままで停止させたいのです。 又は、ムービーインスタンス「mc0」から「mc4」の画像をランダムで表示させ、最初に表示された、その画像で停止させるスクリプトを新規に記述しても構いませんので、ご指導・アドバイスをお願い致します…。 どなたか、解る方がいましたらランダム画像表示で1回表示のみのループしないスクリプトを教えてください。よろしくお願い致します…。

    • ベストアンサー
    • Flash
  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

  • Timeline_nの調べ方について(AS3)

    Windows版FlashCS5、ActionScript3.0、パブリッシュ設定のPlayer(P)は、AIR Androidを 使用しております。 どうぞ、よろしくお願いいたします。 スクリプトを組み、パブリッシュしようとすると、下記のようなエラーが出ることがあります。 TypeError: Error #1009: Cannot access a property or method of a null object reference. at myFla_fla::Timeline_15/frame3()[myFla_fla.Timeline_15::frame3:11] Timeline_15が、どのムービークリップか調べるのに時間がかかり、困っております。 私は現状では、 trace(ムービークリップのインスタンス名); と記述して、出力ウィンドウに表示される結果を見ながら、 片っ端からムービークリップを調べて、該当するTimeline_n(今回はTimeline_15)を探しています。 もっと効率の良い探し方は、ありませんでしょうか? ※無い場合は、"無い"と教えていただけますと、助かります。 どうぞ、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 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
  • loadMovieの読み込み中を表示しない

    Flash Mx 2004です。 ムービークリップにloadMovieで外部画像を表示し、その上にボタンをのせているのですが、画像が出るまでの間ボタンだけが表示されている状態になっています。画像とボタンを同時に表示するにはどうしたらいいのでしょうか?このムービークリップは5フレーム目にあります。 以下の2種類の方法をためしてみましたがうまくいきません。どちらの方法でもまた別の方法でもよいのでよろしくお願いします。 ●読み込み後のフレームへ移動 このムービークリップは別画像をクリックしたら表示されるようにしているので、その画像のアクションに on(release) { _root.gotoAndPlay(6); //5フレーム目の次を表示 } と記述したのですが、これだとなぜかloadMovieの読み込み画像が出ません。 ●最初から読み込んでおいて非表示にしておく ムービークリップを1フレームに配置し [レイヤー名またはインスタンス名]._visible=false; としたのですが非表示になりません。

    • ベストアンサー
    • Flash

専門家に質問してみよう