2014-02-21 2 views
0

무대에 불도저를 표시하려고 할 때이 코드에서 위의 오류가 표시됩니다. 그것은 나를 미치게하고, 나는 그것이 왜 일어나고 있는지 모른다. 내 라이브러리에 불도저 클립이 있으며 올바르게 정의 된 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다.AS3 오류 # 2007 : 매개 변수 하위가 null이 아니어야합니다.

import flash.display.MovieClip; 
import flash.events.MouseEvent; 
import flash.ui.Mouse; 

//START SCREEN 
var startScreen: MovieClip; 
var bulldozer: MovieClip; 

startClick.addEventListener(MouseEvent.CLICK, startGame); 


function startGame(event: MouseEvent): void { 
    startScreen.parent.removeChild(startScreen); 
    startClick.parent.removeChild(startClick); 
    addChild(bulldozer); 
    var enemyGenerator: Number = Math.random(); 
    if (enemyGenerator >= 0.8) { 
     bulldozer.x = stage.x = 150; 
     bulldozer.y = stage.y = 150; 
    } else if (enemyGenerator >= 0.6) { 
     bulldozer.x = stage.x = 250; 
     bulldozer.y = stage.y = 250; 
    } else if (enemyGenerator >= 0.4) { 
     bulldozer.x = stage.x = 350; 
     bulldozer.y = stage.y = 350; 
    } else if (enemyGenerator >= 0.2) { 
     bulldozer.x = stage.x = 400; 
     bulldozer.y = stage.y = 400; 
    } else { 
     bulldozer.x = stage.x = 450; 
     bulldozer.y = stage.y = 450; 
    } 

    startClick.removeEventListener(MouseEvent.CLICK, startGame); 
} 
+0

해야한다 : startClick 무엇 무대는이 같은 라인, X 또는 Y 속성이 없다? 또한 : 귀하의 질문에 오류가있을 때 완전한 오류를 게시하십시오. – FlavorScape

답변

1

불도저 인스턴스를 만들어야합니다!

var bulldozer: MovieClip = new MovieClip(); 

위의 코드는이 클래스의 모든 함수에서 액세스 할 수있는 클래스 수준 인스턴스 변수를 만듭니다. 당신이 말하는 경우

public var MovieClip = new MovieClip(); 

그러면이 클래스 외부에서 액세스 할 수 있습니다. startScreen에 대해 린스하고 반복하십시오.

null사이에 차이가 없습니다.입니다. 이것은 모든 OO 언어의 기본 교훈입니다. 객체 불도저 (추가하려는 자식)는 new로 생성되지 않았으므로이 시점에서 null입니다. 정의되지 않은 경우 var startScreen: MovieClip;이 누락되었음을 의미합니다.

생성자와 인스턴스 변수를 살펴보십시오.

+0

좋아요, 대체 할 때 "var bulldozer : MovieClip;" "var bulldozer : MovieClip = new MovieClip;"을 사용하면 여전히 작동하지 않습니다. startClick은 동적 텍스트입니다. "오류 : 오류 # 2071 : Stage 클래스가이 속성 또는 메서드를 구현하지 않습니다. \t 오류 $/throwError() \t at flash.display :: Stage/set x() PlanetEarthGame_fla에서 \t :: MainTimeline은/startGame() " – user3335696

+0

내 이전 오류 읽기,"형식 오류 : 오류 # 2007 : 매개 변수의 아이가 아닌 null이어야합니다 flash.display : DisplayObjectContainer와 /하는 AddChild() \t PlanetEarthGame_fla에서에서 \t. : : MainTimeline/startGame() " – user3335696

+1

당신은'bulldozer.x = stage.x = 150; '과 같은 라인에서 새로운 오류가 발생했습니다.'stage'의'x' 속성을 설정하려고 시도하고 있습니다. 허용되지 않습니다. – Marcela

0

당신은 다음과 같은 문제가 있습니다 FlavorScape 위에서 언급 한 바와 같이

당신은 불도저의 인스턴스를 작성해야합니다.

이 행은 변수로 불도저를 정의하지만, 그 변수는 빈 또는 "널 (null)"입니다 :

var bulldozer: MovieClip; 

당신은 무대에 널 변수를 추가 할 수 없습니다, 그래서 (오류가 발생 # 2007) 다음과 같은 인스턴스를 만들지 않는 한

var bulldozer: MovieClip = new MovieClip(); 

두 번째 오류 (# 2071)는 스테이지의 x 및 y 속성을 설정 한 결과입니다.

bulldozer.x = stage.x = 150; 
bulldozer.y = stage.y = 150; 

는 또한

bulldozer.x = 150; 
bulldozer.y = 150; 
관련 문제