• ベストアンサー

ボタンシンボルを非表示に

ボタンシンボルの中のダイナミックテキストに値が入っていない場合、ボタンを非表示にしたいのですが、それは可能ですか? btn(インスタンス名)._visible = false; と書いてもしっかり表示されてしまい困っています。

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

ムービークリップシンボルに組み込んだダイナミックテキストで、表示する変数に変数名だけを指定すると、表示されるのはそのムービークリップにある変数の内容です。 しかしボタンシンボルの場合は、ボタンが存在するタイムライン(親タイムライン)にある変数の内容が表示されます。 例えば、ボタンシンボル内にダイナミックテキストを作り、表示する変数を「 btn_name 」にしたとします。 ステージにボタンを置き、インスタンス名が「 btn 」だとして、ムービークリップと同様に考えるなら、ダイナミックテキストに表示する文字列を設定するスクリプトは  _root.btn.btn_name = "テスト"; に、なるような気がします。 ですが、実際にやってみますと、これではダイナミックテキストに何も表示されません。 これを  _root.btn_name = "テスト"; とすると、正常に表示されるようになります。 おそらく、この辺りの事情が原因で「ダイナミックテキストに値が入っていない」という判定ができていないために、ボタンが表示されるのではないかと思います。 上記の例で言うなら、  if( _root.btn_name == "" )  {   _root.btn._visible = false;  }  else  {   _root.btn._visible = true;  } という具合に、変数のパスをボタンの親にあたるタイムラインに変更して判断してみてはいかがでしょうか。

kamay
質問者

お礼

お礼が遅くなってしまいすみませんでした。 ありがとうございました^^

その他の回答 (1)

  • UNAHO
  • ベストアンサー率57% (20/35)
回答No.1

おそらくターゲットパスの指定が間違っていると思われます。 アクションスプリクトを記入するところの上に「ターゲットパスを挿入」アイコンがありますので確認してみて下さい。 もしくは同じインスタンス名が複数存在するとか・・・ あるいは「ダイナミックテキストに値が入っていない場合」の判定がきちんとできていないとか・・・

kamay
質問者

お礼

ありがとうございます! そんな便利な機能があったのですね~ さっそく調べてみます^^

関連するQ&A