2013-04-17 2 views
1

Flash Professional CS5.5에서 Actionscript 3.0으로 게임을 스크립팅하고 있지만 오류가 발생합니다.내부 네임 스페이스의 정의 leftIdle1과 충돌이 발생했습니다.

Scene 1, Layer 'as2', Frame 153, Line 4 1151: A conflict exists with definition leftIdle1 in namespace internal. 

이 지금은 플랫폼 게임, 그리고 내가 게임에 걸쳐 컷씬을 넣어 갈거야 (나는이가. 너무 다른 변수로 얻을) 나는 프레임으로 전환하고 코드를 넣어 필요 다른 프레임에서. 하지만 오류가 발생하고 '자동 선언 스테이지 인스턴스'기능이 해제되었습니다. 이제이 웹 사이트를 확인하고 봤습니다. 사람들이 Movieclips로 가져오고, 변수로 가져옵니다. 그것은 아마도 이상한 방법으로 코딩 것

var leftKeyDown1:Boolean = false; 
var rightKeyDown1:Boolean = false; 
var spaceKeyDown1:Boolean = false; 
var leftIdle1:Boolean = false; 
var rightIdle1:Boolean = true; 
var mainSpeed1:Number = 4; 


player.addEventListener(Event.ENTER_FRAME, moveChar); 
function moveChar(event:Event) 
{ 

    if (leftKeyDown1) 
    { 
     player.x -= mainSpeed1; 
     leftIdle1 = true; 
     rightIdle1 = false; 
     player.gotoAndStop("walk_left"); 
    } 
    if (rightKeyDown1) 
    { 
     player.x += mainSpeed1; 
     rightIdle1 = true; 
     leftIdle1 = false; 
     player.gotoAndStop("walk_right"); 
    } 

    if (rightIdle1 && !rightKeyDown1 && !leftKeyDown1) 
    { 
     player.gotoAndStop("idle_right"); 
    } 
    else if (leftIdle1 && !rightKeyDown1 && !leftKeyDown1) 
    { 
     player.gotoAndStop("idle_left"); 
    } 

    if (collide.hitTestObject(player)) 
    { 
     player.x = player.x + mainSpeed1; 
    } 

    if (trigger1.hitTestObject(player)) 
    { 
     son1.gotoAndStop("walkRight"); 
     trigger1.gotoAndStop(2); 
     son1.x += 2; 
    } 
    if (trigger2.hitTestObject(player)) 
    { 
     gotoAndPlay(4); 
    } 
} 

stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown); 
function checkKeysDown(event:KeyboardEvent) 
{ 
    if (event.keyCode == 37 || event.keyCode == 65) 
    { 
     leftKeyDown1 = true; 
    } 
    if (event.keyCode == 39 || event.keyCode == 68) 
    { 
     rightKeyDown1 = true; 
    } 
    if (event.keyCode == 32) 
    { 
     spaceKeyDown1 = true; 
    } 
} 

stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysU1); 
function checkKeysUp(event:KeyboardEvent) 
{ 

    if (event.keyCode == 37 || event.keyCode == 65) 
    { 
     leftKeyDown1 = false; 
    } 
    if (event.keyCode == 32) 
    { 
     spaceKeyDown1 = false; 
    } 
    if (event.keyCode == 39 || event.keyCode == 68) 
    { 
     rightKeyDown1 = false; 
    } 

} 

하지만, 어떤 :

내 스크립트입니다. 이 시점에서 무엇을해야할지 모르겠습니다. 도움말 정말 감사하겠습니다.

편집 :

아 나는 또 다른 오류가 있습니다. 중복 기능이있어서 수정하지 못하고 이름을 바꿀 수 없으며 매번 이름을 바꾸는 데 오랜 시간이 걸릴 것입니다. 그래서 누군가가 그것에 대해 뭔가가 있다면, 고마워요!

+1

중복, 예를 들면 제거

var leftIdle1:Boolean 

여러 번 존재를 여러 번 - 중복을 –

+0

오 제거, 그래서 그냥 만들어 전체 파일에 해당 변수가 있습니까? 그래서 나중에 사용할 수 있지만 다시 선언 할 필요는 없습니다. 감사! 이제 Duplicate Function과 어떻게 작동합니까? 다른 프레임에서도 같은 이벤트가 발생합니다. – Stepepper

+0

예 - 첫 번째 프레임에 모든 정의를 넣으십시오. 함수와 같은 문제 - 중복 제거 (또는 이름 바꾸기가 더 쉬운 경우) –

답변

3

중복 된 정의가 있습니다. "var에 leftIdle1 : 부울"- 예를 들면 다음과 같습니다

당신이 정의를 복제 한

관련 문제