問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:4 / 状態:解決済み / No:129 / ATOM
1 名前:Eupatorium 日付:2013/12/19(木)11:00:15 ID:pQmouxuFALIQ
初歩的な知識かも知れませんが、、、
ご教示のほど、よろしくお願いいたします。
FlashCS5.5、Action Script3.0を使用しています。

埋め込みアセットクラスMcを準備します。
Mcには、width 30、height 30の四角いビットマップ画像が保存されています。

var myMc:Mc = new Mc();
myMc.x = 100;
myMc.y = 100;
addChild(myMc);

このスクリプトでMcのインスタンスが表示されますが、
そのMcインスタンスをクリックすることで、Mcインスタンスの参照が保存されている変数を
調べることは、できるでしょうか?

質問内容を知りたい目的は、
100個ほどMcインスタンスを画面上に配置しまして、
それらをクリックすることでremoveChildし、
クリックされたMcインスタンスの参照が保存されていた変数にnullを代入したいため、
となります。

ご教示のほど、何卒、よろしくお願いいたします。
2 日付:2013/12/22(日)18:54:36 ID:uqGvQ4UrzKin
クロージャを利用すると、クリックイベントにデータを持たせる事ができます。
配列の番地や、null を代入する為のオブジェクトそのものを渡す事ができます。

---------------------------------------------------------------------------------------
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.events.MouseEvent;


var mc_list:Array = new Array();

var i:Number;
var num:Number = 100;

for(i=0;i<num;i++){

// 匿名関数を即時実行
(function():void{

// プライベート変数
var index:Number = i;

// ムービークリップを作成
var mc:MovieClip = new MovieClip();

// クリックされた時に実行されるイベント
mc.addEventListener(MouseEvent.CLICK,function(e:MouseEvent):void {

ムービークリップを除外
mc.parent.removeChild(mc);

trace("CLICK!! index:" + index);
mc_list[index] = null;
});

// ムービークリップに矩形をレンダリング
var g:Graphics;
g = mc.graphics;
g.lineStyle (5, 0xAA0000, 1.0);
g.beginFill (0xFF4444, 1.0);
g.drawRect (0,0,30,30);

// ステージにムービークリップを配置
stage.addChild(mc);
mc.x = Math.random() * stage.stageWidth;
mc.y = Math.random() * stage.stageHeight;

mc_list[index] = mc;

}).call(this);

}
---------------------------------------------------------------------------------------

他にも様々な方法で、イベントにデータを渡すことができます。
http://hakuhin.jp/as3/event.html#EVENT_03
3 名前:Eupatorium 日付:2013/12/23(月)17:31:51 ID:1lf2XtRfyk5M
アドバイスありがとうございます!

今までクロージャを知りませんでした。
教えていただき、できることが増えました^^

リンク先も、しっかり読ませていただきます。

大変助かりました。
ありがとうございます!
4 名前:状態変更 日付:2013/12/24(火)17:15:51 ID:1lf2XtRfyk5M
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2013/12/19(木)11:00:15
投稿終了日 :
2013/12/31(火)17:15:52
投稿者 :
Eupatorium
レス総数 :
4
スレッド番号 :
129
MondoCollectionSystem ver.0x00020000 by Hakuhin