2014-06-07 1 views
0

제 코드를 살펴보세요 http://pastebin.com/nHB81pVW득점 시스템을 올바른 변수로 업데이트하는 방법?

거품처럼 보이는 클래스가 있습니다. 이러한 클래스에는 pastebin의 코드 맨 아래에있는 increaseColor 함수 중 하나를 호출하는 addScore라는 함수가 있습니다.

거품이 터지면 해당 색상 대신 임의의 점수가 업데이트되는 것 같습니다. 어떻게하면 올바른 색상으로 업데이트 할 수 있습니까?

나 자신에게 설명 할 필요가 있으면 알려 주시기 바랍니다 더 나은

+0

몇 가지 팁 : 1 - 상속에 대해 (모든 거품은 모두 동일하거나 유사한 코드가 기본 클래스에서 상속한다) 학습은, 당신은 단지 각 거품 클래스를 정의하는 기능을 대체 할 수 있습니다. – BadFeelingAboutThis

+0

2nd -'MovieClip (root)'은 좋은 습관이 아닙니다. 'parent'를 사용하거나, 이벤트를 전달하거나, 버블 생성자의 루트 클래스에 대한 참조를 전달하십시오. 또는 정적 변수를 사용하십시오 (그러나 항상 좋은 습관은 아닙니다). 이 방법들은 디버그하고 청소하기가 더 쉽습니다. – BadFeelingAboutThis

+0

아래의 기존 대답에 관해서. 'array.splice (i, 1)'이터레이터로 배열을 연결할 때,'i'의 위치에있는 요소를 제거 했으므로'array [i]'는 범위를 벗어납니다 , 또는 스플 라이스 전에 있던 것과 다른 요소. 그래서 ** 배열 ** 후에 다른 모든 참조를 이어 붙일 필요가 있습니다. – BadFeelingAboutThis

답변

0

나는 이것이 당신의 오류라고 생각 : 잘못

bubbleList.splice(i,1); 
bubbleList[i].addScore(); 

. 배열이 [1, 2, 3]이고 i이 1이라고 가정 해 보겠습니다. splice(i, 1);을 수행하면 실제로 splice(1, 1);을 수행하고 그 결과는 [1, 3]일까요? 하지만 실제로는 array(1)bubbleList[i]을 입력하고 [1, 3] 인 경우 1 인 항목은 이됩니다.

간단히 말해서 요소를 제거한 다음 배열의 다음 요소에서 addScore을 수행합니다.

bubbleList.splice(1, 1)[0].addScore(); 

splice 당신에게 (귀하의 경우 하나 하나에) 제거 된 요소의 배열을 반환하고, 그래서 당신은 위치 0으로 요소를 얻고 그것을 addScore를 수행

대신,이 작업을 수행.

건배!

편집 : 또는 당신은 더 명확 할 경우 - 다음 splice, addScore 첫번째)에 대한 답변과 팁을

+0

감사합니다 Andrey, 나는 이것을 시도하고이 게임이 실행될 때 내 게임이 충돌합니다 ... 어떤 생각이 잘못된 것입니까? –

+0

그냥 두 번째 옵션을 사용하십시오 - 첫 번째'addScore', 그리고 나서'splice' :) 오류 메시지 없이는 무엇이 잘못 됐는지 말할 수 없습니다;) –

+0

첫 번째 addscore와 splice가 무슨 뜻인지 모르겠지만, 않았다 : \t \t \t \t \t \t bubbleList [i] .addScore(); (1232) 이 클래스 내부 addScore 함수이다 \t \t 공개 addScore 함수() { \t \t \t \t \t \t 영화 클립 (루트) .increaseBlue(); \t \t 오류 메시지는 다음과 같습니다. TypeError : Error # 1009 : null 개체 참조의 속성이나 메서드에 액세스 할 수 없습니다. 게임 :: BlueBubble/addScore() flash.utils의에서 flash.events::EventDispatcher/dispatchEvent() 에서 GameController/removeBubble() flash.events::EventDispatcher/dispatchEventFunction() 에서 에서 : 타이머 /에서 tick() –

0

감사합니다.

removeChild 및 splice 전에 addScore를 배치하고 문제를 해결했습니다.

감사합니다 :)

+0

도움이 된 것을 기쁘게 생각합니다. :) –

관련 문제