質問ページ3 / 22


質問ページ3 / 22

質問ページ3/22

概要複製したMCの中の変数の取り扱い
投稿者Parafla Quality
状態
カテゴリーParaFla!
投稿日2009-02-17 (火) 23:12:16
バージョン1.37

質問内容

どうしてもわからないので質問させていただきます。

MC_Aの中に変数Bがあるとします。 変数BはMC_Aの中でのみ演算されるようになっています。 これを複製した場合、スコープはどう書けばいいんでしょうか。 それとも他に何が原因なのでしょうか。条件式を当てはめたいのですがうまくいきません。条件式を当てはめない場合は全て正常に機能します。

_root.Bのように取り扱うことはできませんよね?複製されるので_root上にも大量の変数の処理をしなければならなくなると思いますが。このへんよくわかりません。スプライトはそれ自体が一つのクラスなので、クラス内での変数の扱い方ってことになりますよね・・・。

Cに当たったときに変数Bを減算して、Bが0になったときに複製したMC_A(ここではeval("_root.A" + count)になりますね)を順番に消去していくという記述になっています。←これができればどんなやり方でもいいです。

■模式図

〜MC_A内部〜

if (this.hitTest(C)){

変数B --;

if(eval("this" + count).変数B == 0){ /*←ここがどうしてもうまくいかない。ここをeval("this." にしても駄目、eval("_root.A"にしても駄目。*/

this.removeMovieClip?(); } }

〜複製させるスクリプト内〜

(中略) duplicateMovieClip?("_root.hoge" + "hoge" + _root.count, _root.count+1000 );

たとえば、変数Bを_root.Bとして処理させると、MC_Aを複製した場合に、一個の変数のみで処理されてしまいますよね。 考えの及ぶ限り、他にもいろいろ試してみましたが、どうにもこうにもうまくいきませんでした。

回答

  • よくわからないのですが、3_22sampleを添付してみました。見当違いならごめんなさい。 -- 2009-02-18 (水) 11:47:38
  • 神降臨・・・。八方塞だったので目から鱗です。比較検討してみます。 -- 2009-02-18 (水) 18:32:28
  • 行き詰まりました。添付していただいたスクリプト自体は納得しましたが、問題はこのCにあたるものが複製になっています。パラフラでシューティングを作ろうと思うと複製だらけになってしまってスコープがややこしくなるんでなかなか前に進ません。 -- 2009-02-21 (土) 15:08:02