• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:forとduplicateMovieClip)

forとduplicateMovieClipを使ったムービー作成方法

このQ&Aのポイント
  • for文とduplicateMovieClipを使ってムービーを作成する方法について質問しています。
  • 質問者はアンケート用紙のようなムービーを作りたいと考えており、for文を使ってMCを複製し、ダイナミックテキストと変数を設定しています。
  • しかし、クリックした項目にチェックマークを表示する際に、すべての項目でHflagが4と出力されてしまう問題が発生しています。

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

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

> Hflag = i; まず、上記の代入式は"ASを記述した階層のHflag"に、 "ASを記述した階層のi"を代入するというものです これは変数を利用しているので、"for文中のi"が固定して代入されるわけではありません for文の条件がi<=3となっていて、次の動作がi++となっていることで、 iが4になった時点でfor文を抜けます つまり毎回"onReleaseアクション時点でのi"(=forを抜けた後のi)を 参照するということにより 4 という結果になってしまうのです 各MC複製中にiに基づいた番号を保持させたい場合は、 そのMCあたりに変数を作りその時点でのiを代入させておくことです 例 : _root["MC"+i].HT_answer = HanswerBox[i]; _root["MC"+i].MyFlag = i;//ここで、その時点でのiを代入しておく _root["MC"+i].onRelease = function(){ Hflag = this.MyFlag; //function内でthisがなかったらASを記述した階層から参照 //よって Hflag は ASを記述した階層のHflag //function内のthisはアクションを行っているオブジェクトから参照 //よって this.MyFlagは _root["MC"+i]のMyFlag trace(Hflag); } :

thank001
質問者

お礼

suzukiさん、書き込みありがとうございます。 順を追って詳細に解説していただき、理解できました。 ターゲットパスの階層の整理ができていないとこういう間違いをしてしまうというかんじのようですね。 大変勉強になりました。 ありがとうございました。

関連するQ&A