• 締切済み

attachMovie で動的にボタン生成する方法

以下のXMLファイルをロードして、 ------------------------------------- <?xml version='1.0'?> <data> <groop name="グループ1"> <series name="シリーズ1"> <color>赤</color><type>LL</type> </series> </groop> <groop name="グループ2"> <series name="シリーズ2"> <color>青</color><type>LL</type> </series> <series name="シリーズ3"> <color>緑</color><type>LL</type> <color>緑</color><type>LL</type> </series> </groop> </data> ------------------------------------- グループの数だけムービークリップを配置して、 次にその配置したムービークリップのマウスオーバーの際に、 シリーズの数だけムービークリップを配置して、 次にその配置したムービークリップのマウスオーバー時に、 colorの数だけのボタンを表示する、という事を実現したいのですが、どなたかアドバイスお願いできませんでしょうか。 xmlファイルのロードは成功して、次にグループの数だけムービークリップを配置する所まで成功したのですが、そこからどうすれば良いのかわからず困っています。 状況としては、bt_groop_mc と bt_series_mc を作成して、シリーズの数だけボタンを生成したいのですが、どうも切り口がつかめずこまっています。 初心者ですが、どなたかアドバイスお願いできないでしょうか。 function prev() { rootNode = this.myXML.firstChild; for (var i = 0; i<rootNode.childNodes.length; i++) { var itemNode = rootNode.childNodes[i]; //gradeノードのMC配置 var attach_mc01 = this.attachMovie("bt_groop_mc", "bt_groop_mc"+i, i); attach_mc01._x = 0; attach_mc01._y = attach_mc01._height*i; this["bt_groop_mc"+i]["bt_txt"] = itemNode.attributes.gradeName; //seriesノードのMC配置(※ここから分かりません) for (var z = 0; z<itemNode.childNodes.length; z++) { var propNode = itemNode.childNodes[z]; var attach_mc02 = this.attachMovie("bt_series_mc", "bt_series_mc"+z, 1000+z); attach_mc02._x = 100; attach_mc02._y = attach_mc02._height*i; } } gotoAndPlay("success"); }

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

attachMovieで配置したムービークリップに マウスオーバーのイベントをつけたいということでしたら 以下の方法で出来ます。 (xmlからの読み込みはひとまず置いといて) i = 0; //配置 var attach_mc01 = this.attachMovie("bt_groop_mc", "bt_groop_mc"+i, i); //配置したMCにロールオーバーイベント設定 attach_mc01.onRollOver = function() { trace(this); }; もしくは、 //イベントで呼び出す関数を定義 function mcRollOver() { trace(this); } i = 0; //配置 var attach_mc01 = this.attachMovie("bt_groop_mc", "bt_groop_mc"+i, i); //ロールオーバーイベントで呼び出す関数を設定 attach_mc01.onRollOver = mcRollOver;

volksjp
質問者

お礼

おおざっぱな質問にもかかわらず、回答頂き有難うございます。 最初に全ボタンを作成して、表示のオン/オフを切り替えようとしていたのですが、perse様のおっしゃる通りマウスオーバーの際にattachMovieをしていけば、実現可能な気がしてきました。 再度チャレンジしてみます。 どうも有難うございます。