2011-05-13 4 views
0

setupBoard(); 및 setupBlocks(); 내 기능에플래시 CS5 (AS3 포함)에서 movieclip/그래픽을 제거/다시로드하는 방법

:

function init(e) 
{ 
    setupBoard(); 
    removeEventListener(Event.ENTER_FRAME , init); 
    setupCat(); 
    setupBlocks(); 
} 



function setupBoard() 
{ 

    var columns:Array = new Array(); 
    var i,j:int; 
    var _place:place; 



    for (i = 0; i < 11; i++) 
    { 
     columns = []; 
     for (j = 0; j < 11; j++) 
     { 
      _place = new place(); 
      _place.thisX=i; 
      _place.thisY=j; 
      _place.thisDistance=Math.min(i+1,j+1,11-i,11-j)*11; 
      _place.y = 56 * i + 3; 
      _place.x = 5 + 71 * j + 35*(i%2); 
      _place.buttonMode=true; 
      _place.addEventListener(MouseEvent.CLICK, setBlock); 
      columns[j] = _place; 
      // SÆTTER TAL PÅ BRIKKERNE 
      _place.thisText.text = _place.thisDistance + " - " + _place.thisX + " : " + _place.thisY; 
      addChild(_place); 
     } 
     rows[i] = columns; 
    } 
} 

은 "장소"영화 클립

게임 출시 게임이 마무리/완료되면이 기능의 하중을 ..

setupBoard입니다, board ofc를 설치하고 setupBlocks는 그래픽을 포함하는 몇 개의 영화 클립을 설정합니다.

내 질문에, 게임을 다시 시작하면 모든 블록을 제거/다시로드하는 방법은 무엇입니까? 내가 제대로 이해하면 그들은 단지 서로에 배치 기압, 당신이하고 싶은 마지막에서 (이전의 모든 블록을 제거하는 것입니다 .. 나는 전혀처럼 해달라고 미리

+0

내가 첫 번째 함수 아래의 코드를 추가 한 ... –

+0

에 대한 코드를 보여! 이 코드를 removeBlocks2() 함수에 insert'ed했습니다; 그런 다음 setupBoard 기능 안에 insert'ed 함수가 있습니다. 바로 그 아래에 3 개의 var를 정의합니다. 난 단지 1 오류 메시지가 나타납니다 : "정의되지 않은 속성 행에 대한 액세스", 나는 다른 것들을 많이 tryed 있지만 캔트가 작동하는 방법을 figger 것 같습니다 :/당신은 문제가 뭔지 알아? –

답변

1

에서

감사를 이십 기가 바이트 설치 프로그램을 실행했을 때).

이렇게하려면 행과 열 배열을 반복하는 함수를 만들어야하고 발견 한 각 Place 객체에 대해 다음을 수행해야합니다. 스테이지에서 제거하고 모든 이벤트 수신기를 제거한 다음 마지막으로 설정합니다. 없는. 함수는 다음과 같이 볼 수 있었다 (그리고 당신은 설치를 다시 호출하기 전에 호출 것) :

for (i = 0; i < rows.length; i++) 
{ 
    var column:Array = rows[i]; 

    for (j = 0; j < column.length; j++) 
    { 
     var place:Place = column[j]; 
     if (contains(place)) 
     { 
     removeChild(place); 
     } 
     place.removeEventListener(MouseEvent.CLICK, setBlock); 
     place = null; 
    } 
    column = []; 
} 
row = []; 

난 그냥이 테스트되지 않은 사용자들은 바로 상자에, 그래서 썼다. 그러나 기본적으로 뷰에서 해당 객체를 제거하는 데 필요한 세 가지 작업을 수행하고 가비지 수집기가 메모리를 해제하지 못하도록하는 모든 작업을 지 웁니다.

희망이 있습니다.

Debu

+0

덕분에 짝짓기를하여 setupboard 기능 –

+0

아, 그건 '행'변수의 이름을 잘못 지정했기 때문에 '행'을 사용했기 때문입니다. '행'배열은 클래스의 속성이므로 올바르게 명명 된 것으로 가정하면 액세스 할 수 있어야합니다. 내 함수에서 '행'을 '행'으로 변경하고 얻은 것을 확인하십시오. – debu

+0

하나님의 일하는 !! : D 나는 지금 3 주 동안 이렇게하려고 노력해 왔습니다. : P 고맙습니다. –