개체가 정의되지 않았지만 정의 된 것 같습니다.

마야 스트링거

먼저 저는 아직 코딩이 처음 이니 편하게하세요. 코드를 보여주기 전에 약간의 뒤 추적. ActionScript 3로 게임을 만드는 방법에 대한 책을 받았는데, Adobe animate / flash가 아닌 Photoshop과 Flash Builder를 함께 사용한다는 가정하에 주로 작동한다는 것뿐입니다. 따라서 이미지 삽입과 같은 작업을 수행하고 이미지를 정의하기 위해 코드를 변경하는 방법을 잘 모르겠습니다. 이것이 바로 문제입니다. 그러나 동시에 스테이지는 정의되지 않은 액세스로 나타납니다! 제 말은 무대가 어떻게 정의되지 않을 수 있는지를 의미합니다 ... 음, 어쨌든 정의되지 않은 속성 중 하나의 예는 다음과 같습니다.

///
class BetterScrolling extends Sprite 
    var ForegroundImage: Class;
    var foregroundImage: DisplayObject = ForegroundImage();
    var foreground = ForegroundImage;
///

중간에 몇 가지 코드가 있습니다.

///
function BetterScrolling(){
     foreground.x = -((foreground.width - stage.width) / 2);
    foreground.y = -((foreground.height - stage.height) / 2);
    }

///

이 코드의 요점은 스크롤링 배경을 만드는 것입니다. 그러나 나는 X와 Y 변수가 있기 때문에 다소 복잡하지만 전경 외에도 느린 배경도 있습니다. 나는 지금 완전한 코드에 링크 할 것이다. http://pastebin.com/WHg9DGsB 내가 이유를 염두에두고 만든 그 코드의 모든 변경은 어리석은 것이더라도 ... 그러지 말아라. 내가 확신하는 다른 오류에주의가 산만 해졌습니다. 지금은 내 이미지를 정의하는 것뿐입니다.

BadFeelingAboutThis

코드 컴파일을 방해하는 여러 가지 문제가 있습니다.

  1. 클래스가로드되면 스테이지를 사용할 수 없습니다. 함수 내부에없는 코드는 애플리케이션이 초기화 될 때 실행됩니다 (화면에 아무것도 표시되기 전에). 다음 줄로 인해 오류가 발생합니다.

    stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
    stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandHandler);
    stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
    

    스테이지가 아직 존재하지 않을 때 이러한 행은 클래스 선언에 떠 있습니다.

    원하는 것은 해당 코드 (및 변수 또는 함수 정의가 아닌 코드)를 함수로 이동하는 것입니다. 즉시 실행하려면 생성자 (클래스와 같은 이름의 함수)에 넣으십시오. 그러나 생성자에서 스테이지를 항상 사용할 수있는 것은 아니므로 안전을 위해 다음을 수행해야합니다.

    function BetterScrolling() {
        if(!stage){
            this.addEventListener(Event.ADDED_TO_STAGE, stageReady);
        }else{
            stageReady();
        }
    }
    
    function stageReady(e:Event = null):void {
        stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
        stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandHandler);
        stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
    
        //any other code that needs the stage and should run as soon as possible
    }
    
  2. 어디에도 속하지 않는 괄호와 코드가 많이 있습니다. 45-71 행은 제대로 컴파일되지 않습니다. 대부분의 경우 생성자 / 스테이지 준비 메서드에서도 해당 코드를 원하므로이를 추가하면 다음과 같은 결과를 얻을 수 있습니다.

    function BetterScrolling() {
        if(!stage){
            this.addEventListener(Event.ADDED_TO_STAGE, stageReady);
        }else{
            stageReady();
        }
    }
    
    function stageReady(e:Event = null):void {
        stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
        stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandHandler);
        stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
    
        foreground.x = -((foreground.width - stage.width) / 2);
        foreground.y = -((foreground.height - stage.height) / 2);
    
        background.x = -((background.width - stage.width) / 2);
        background.y = -((background.height - stage.height) / 2);
    
        cloud.x = -((cloud.width - stage.width) / 2);
        cloud.y = -((cloud.height - stage.height) / 2);
    
        character.x = 370
        character.y = 320
    
        rightInnerBoundary = (stage.stageWidth / 2) + (stage.stageWidth / 4)
        leftInnerBoundary = (stage.stageWidth / 2) + (stage.stageWidth / 4)
        topInnerBoundary = (stage.stageHeight / 2) + (stage.stageHeight / 4)
        bottomInnerBoundary = (stage.stageHeight / 2) + (stage.stageHeight / 4)
    }
    
  3. 빈 클래스 인 변수가있는 경우 인스턴스화하려고합니다.

    var BackgroundImage: Class;
    var backgroundImage: DisplayObject = BackgroundImage();
    

    BackgroundImagenull / undefined 이므로 런타임 오류가 발생합니다 . FlashPro의 라이브러리 객체를 클래스로 내보내고 싶습니까? 그렇게하려면 라이브러리에서 해당 개체를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다. '액션 스크립트 내보내기'를 선택하고 클래스 이름을 지정하십시오. 이 경우 BackgroundImage라고합니다. 그런 다음 위 코드를 다음으로 바꿉니다.

    var backgroundImage:BackgroundImage = new BackgroundImage();
    

    제쳐두고, 다른 객체 / 클래스를 참조하고 생성자에서 인스턴스화하는 클래스 vars 만 선언하는 것이 더 안전합니다. 그렇게 변경하려면 위의 줄을 다음과 같이 변경하십시오.

    var backgroundImage:BackgroundImage;
    

    그런 다음 생성자에서 다음을 수행하십시오.

    backgroundImage = new BackgroundImage();
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

반환 된 개체가 정의되지 않았습니다.

분류에서Dev

Moq : Moq가 설정되어 있지만 호출 된 것 같지 않습니다.

분류에서Dev

잡히지 않은 ReferenceError : 제출 된 것이 정의되지 않았습니다

분류에서Dev

console.log로 인쇄 한 후 배열 요소가 정의되지 않았습니까 ?? 해당 줄을 제거한 후에 만 정의 된 것 같습니다 ..? (자바 스크립트)

분류에서Dev

중첩 된 JSON 개체의 출력이 정의되지 않았습니다.

분류에서Dev

linqts의 메소드가 정의되지 않은 것 같습니다.

분류에서Dev

Typescript 가져온 개체가 정의되지 않았습니다.

분류에서Dev

Frisby.js : 유효한 자바 스크립트 개체가 제공 될 것으로 예상했지만 정의되지 않았습니다.

분류에서Dev

JavaScript는 개체 내부에 정의 된 변수가 정의되지 않았다고 말합니다.

분류에서Dev

Facebook 개체의 일부가 정의되지 않은 것으로 표시되지만 정의되지 않은 것은 아닙니다.

분류에서Dev

jQuery Ajax 오류 개체가 정의되지 않았습니다.

분류에서Dev

개체 변수가 정의되지 않았습니다.

분류에서Dev

특정 운영 체제 만 부팅됩니다. 하드웨어 문제가 발견되지 않았지만 문제가 발생한 것 같습니다.

분류에서Dev

TypeError : this.canvas가 정의되지 않았습니다 (선언 된 객체에서).

분류에서Dev

명명 된 매개 변수 'colors'가 정의되지 않았습니다.

분류에서Dev

TypeError : arrayal [i]가 정의되지 않았지만 정의되었습니다.

분류에서Dev

의도가 정의되지 않았습니다. 많이 시도했지만 아무것도 작동하지 않습니다.

분류에서Dev

pygame.key.get_pressed ()가 정지 된 것 같습니다.

분류에서Dev

가져 오기 모듈 오류 이것은 정의되지 않았습니다.

분류에서Dev

배열의 이미지 개체가 정의되지 않았습니다.

분류에서Dev

자바 스크립트 : 변수가 정의되지 않았지만 반환하는 동안 정의되지 않은 것으로 반환됩니다.

분류에서Dev

내 PATH 변수가 정상으로 설정된 것 같지만 작동하지 않습니다.

분류에서Dev

개체 변수가 초기화되었지만 정의되지 않았습니다.

분류에서Dev

Ionic : 오류 : 정의되지 않은 것은 개체가 아닙니다.

분류에서Dev

오류 : 정의되지 않은 것은 개체가 아닙니다?

분류에서Dev

C # 정렬 된 열거 가능-개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

분류에서Dev

재정의 된 같음 메서드가 호출되지 않습니다.

분류에서Dev

GMock이 컴파일되지 않음-GTEST_EXCLUSIVE_LOCK_REQUIRED가 정의되지 않은 것 같습니다.

분류에서Dev

SSRS : 사용자 지정 코드로 설정된 매개 변수가 작동하지 않는 것 같습니다.

Related 관련 기사

  1. 1

    반환 된 개체가 정의되지 않았습니다.

  2. 2

    Moq : Moq가 설정되어 있지만 호출 된 것 같지 않습니다.

  3. 3

    잡히지 않은 ReferenceError : 제출 된 것이 정의되지 않았습니다

  4. 4

    console.log로 인쇄 한 후 배열 요소가 정의되지 않았습니까 ?? 해당 줄을 제거한 후에 만 정의 된 것 같습니다 ..? (자바 스크립트)

  5. 5

    중첩 된 JSON 개체의 출력이 정의되지 않았습니다.

  6. 6

    linqts의 메소드가 정의되지 않은 것 같습니다.

  7. 7

    Typescript 가져온 개체가 정의되지 않았습니다.

  8. 8

    Frisby.js : 유효한 자바 스크립트 개체가 제공 될 것으로 예상했지만 정의되지 않았습니다.

  9. 9

    JavaScript는 개체 내부에 정의 된 변수가 정의되지 않았다고 말합니다.

  10. 10

    Facebook 개체의 일부가 정의되지 않은 것으로 표시되지만 정의되지 않은 것은 아닙니다.

  11. 11

    jQuery Ajax 오류 개체가 정의되지 않았습니다.

  12. 12

    개체 변수가 정의되지 않았습니다.

  13. 13

    특정 운영 체제 만 부팅됩니다. 하드웨어 문제가 발견되지 않았지만 문제가 발생한 것 같습니다.

  14. 14

    TypeError : this.canvas가 정의되지 않았습니다 (선언 된 객체에서).

  15. 15

    명명 된 매개 변수 'colors'가 정의되지 않았습니다.

  16. 16

    TypeError : arrayal [i]가 정의되지 않았지만 정의되었습니다.

  17. 17

    의도가 정의되지 않았습니다. 많이 시도했지만 아무것도 작동하지 않습니다.

  18. 18

    pygame.key.get_pressed ()가 정지 된 것 같습니다.

  19. 19

    가져 오기 모듈 오류 이것은 정의되지 않았습니다.

  20. 20

    배열의 이미지 개체가 정의되지 않았습니다.

  21. 21

    자바 스크립트 : 변수가 정의되지 않았지만 반환하는 동안 정의되지 않은 것으로 반환됩니다.

  22. 22

    내 PATH 변수가 정상으로 설정된 것 같지만 작동하지 않습니다.

  23. 23

    개체 변수가 초기화되었지만 정의되지 않았습니다.

  24. 24

    Ionic : 오류 : 정의되지 않은 것은 개체가 아닙니다.

  25. 25

    오류 : 정의되지 않은 것은 개체가 아닙니다?

  26. 26

    C # 정렬 된 열거 가능-개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

  27. 27

    재정의 된 같음 메서드가 호출되지 않습니다.

  28. 28

    GMock이 컴파일되지 않음-GTEST_EXCLUSIVE_LOCK_REQUIRED가 정의되지 않은 것 같습니다.

  29. 29

    SSRS : 사용자 지정 코드로 설정된 매개 변수가 작동하지 않는 것 같습니다.

뜨겁다태그

보관