• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash AS3.0 初歩的な質問)

Flash AS3.0初心者の疑問:ムービークリップからテキストボックスの座標を取得する方法

このQ&Aのポイント
  • AS3.0を勉強中の初心者が、ムービークリップからテキストボックスの座標を取得する方法について質問しています。
  • ローカルテストでは正常に動作しているが、ムービークリップからの参照方法がわからず、エラーが発生しています。
  • AS2.0までは_rootや_parentを使用してパスが通ったが、AS3.0では使えないようです。どのようにすればよいでしょうか?

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

  • ベストアンサー
  • cspl
  • ベストアンサー率83% (55/66)
回答No.1

まず最初に、AS3ではムービークリップごとにそれぞれのフレームに記述する方法はお勧めできません。どうしても使用したい場合も、addEventListenerなどを使用して、parentなどの他のムービークリップにアクセスするような記述は極力避けるように書かなければAS3で書くメリットはあまりないです。 それを前提とした上で、parentへは以下のようにアクセスします。 ------------------------------------------------- function syori(eventObject:Event):void { //parentを一旦変数に入れる。 var p = parent; p.hako.text=String(stage.mouseX); } ------------------------------------------------- あるいは下記のようにしてもOKです。 ------------------------------------------------- function syori(eventObject:Event):void { var m = this; m.parent.hako.text=String(stage.mouseX); } ------------------------------------------------- とはいえ、AS3ではフレームごとに記述する方法はデメリットが多いので、卒業された方が良いと思います。本格的に勉強されるということでしたら、できればクラスを使った記述方法を身につけましょう。熟練した人はほとんど他のMCへ干渉する記述やparentなどの記述は書きません。それがAS3(というより一般的なオブジェクト指向のプログラム言語)の一般的な記述方式であり、身につけておかなければならない知識だと考えてください。

pory_bekk
質問者

お礼

>csplさん ご回答、そしてアドバイスありがとうございます。 おっしゃる通り、parentへのアクセスは AS3によって記述方法がちょっと変わっただけで 今までAS2/1でやってた事と変わってないなと感じていました。 >AS3ではムービークリップごとにそれぞれのフレームに記述する方法はお勧めできません これも薄々と感じていました。orz とすれば、スクリプトを記述する場所というのは基本的にメインのタイムライン(フレーム)上のみという事になるのでしょうか? また、それぞれのMCが独立して、それ単独で処理が完結するような場合も ムービークリップごとにそれぞれのフレームに記述するのはよくないと考えるべきでしょうか? 例:MC1=アナログ時計、MC2=マウスポインタ座標表示 MC1,MC2共にそれぞれのムービークリップ内の第一フレームにスクリプトを記述しており単独で全て完結。 新規で作ったflaファイル等(例えばnew.fla)に MC1,MC2を配置するだけでそれぞれの機能を果たす。 ここで言いたいのは、new.flaのメインのタイムライン上に MC1とMC2の処理を記述した方が良いのか?という事です。 今までの自分なら、マウスポインタの座標がx=500になったら アナログ時計を一旦12時にリセットする等といった処理を MC2の中に書いていました。まさにparentを参照する書き方ですね。(涙)

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • cspl
  • ベストアンサー率83% (55/66)
回答No.2

>とすれば、スクリプトを記述する場所というのは基本的にメインのタイム >ライン(フレーム)上のみという事になるのでしょうか? あくまでケースバイケースですが、申し上げたのはクラスを使用して書く場合によるルールです。できればメインタイムラインにひとまとめできれば好ましいですが、それでは冗長になる場合がありますよね。 >また、それぞれのMCが独立して、それ単独で処理が完結するような場合も >ムービークリップごとにそれぞれのフレームに記述するのはよくないと考 >えるべきでしょうか? 一般的に言うのであれば、フレーム自体に書くことが好ましいと言えないです。 この「単独で処理が完結する」ムービークリップごとのフレーム上に書く、ということ自体はムービークリップにつきそれぞれクラスを用意して結びつけることと、考え方はほとんど変わりありません。 ですが、AS3を使用した実際の仕事ではほとんどの人はクラスを使用します。クラスを使用すればそれだけ享受できるメリットがあるからです。 具体的な記述方法についてはここでは言及しませんが、もしこの先も「自分一人で作るのだから動けばいい」というスタンスでやるのであれば、AS2でもAS3でもタイムラインに記述する方法でまったく構いません。が、もしも将来的なことを見据えて勉強されているのであれば、クラスを使用した記述やオブジェクト指向の書き方も覚えておかなければならないということです。 タイムラインに書くのに慣れた方にとっては覚えることが多くて大変ですが、そもそもAS3を勉強するというのは、他の人が書いたものを理解できるようになる、ということが前提ですので、がんばってみてください。

pory_bekk
質問者

お礼

>csplさん ご回答ありがとうございます。 AS3に対する考え方など非常に勉強になります。 Flash4末期の頃からコンテンツ制作に携わっており 業務でも、それなりの数作ってきましたが全て独学でなんとかやってきたので、常に「これでいいのか?」的な疑問がまとまわりついている状態です。 長年この業界にいるのですが自分の周りで自分よりFlash(あるいはAS)に詳しい人物に会った事が無いので、 解らないことや疑問点などが頻繁に出てくるのに対して 「これはこうだ!」と明確に答えてくれる人、あるいは 私はこういう考え方に基づいてこういうやり方をしている。 等、はっきりした回答をしてくれる人が周りにいなくていつもwebでの質問頼りで困り果てています。 でもcsplさんの回答を読んで、また少しやる気が出ました。 ありがとうございます。

すると、全ての回答が全文表示されます。

専門家に質問してみよう