2012-05-17 2 views
0

저는 AS3을 처음 접했습니다. 어쨌든, 내가 클릭하면 동적으로 생성 된 아이 무비 클립을 제거하려고합니다. '세계'의 어린이 영화 클립 인 흙 블록을 클릭하면 제거하려고합니다.동적으로 생성 된 하위 동영상 클립을 제거하는 AS3

저는 removeChild를 사용하여 다양한 방법으로 제거하려고했습니다. 또한 movieclips를 만드는 for 루프의 내부/외부에서 함수를 이동하려고했습니다.

var blockCount:Number = 0; 
var blockArray:Array = []; 

var world:MovieClip = new World(); 
world.x = 50; 
world.y = 50; 
world.name = "world"; 
addChild(world); 

for(var i:Number=1;i<=100;i++){ 
    blockCount++; 
    var tempGrassBlock:MovieClip = new GrassBlock(); 
    tempGrassBlock.x = i*16; 
    tempGrassBlock.y = 256; 
    tempGrassBlock.name = "b"+blockCount; 
    world.addChild(tempGrassBlock); 

    tempGrassBlock.addEventListener(MouseEvent.CLICK, removeBlock); 
    function removeBlock(event:Event){ 
     world.removeChild(getChildByName(event.target.name)); 
    } 
} 

감사합니다.

답변

1

function removeBlock(event:Event){ 
    world.removeChild(event.currentTarget as DisplayObject); 
} 
1

기능 없음 정의에 대한 내부해야보십시오. 귀하의 코드에서이를 변경했으며 조금 아래에 재 표기했습니다.

var blockCount:Number = 0; 
var blockArray:Array = []; 

var world:MovieClip = new World(); 
world.x = 50; 
world.y = 50; 
world.name = "world"; 
addChild(world); 

for(var i:Number=1;i<=100;i++){ 
    blockCount++; 
    var tempGrassBlock:MovieClip = new GrassBlock(); 
    tempGrassBlock.x = i*16; 
    tempGrassBlock.y = 256; 
    tempGrassBlock.name = "b"+blockCount; 
    world.addChild(tempGrassBlock); 

    tempGrassBlock.addEventListener(MouseEvent.CLICK, removeBlock); 

} 

function removeBlock(event:MouseEvent){ 
    trace("Is click really working? This target name is " + event.currentTarget.name); 
    world.removeChild(event.currentTarget)); 
} 
관련 문제