2016-12-04 1 views
1

Main.hx라는 파일에 주 Haxe 스크립트가 있습니다. 그리고이 동일한 스크립트에서 패키지로 간주되는 다른 Haxe 스크립트를 같은 디렉토리에 포함하여 기존의 패키지를 가져올 수 있지만 중첩 된 디렉토리에 선언 된 Haxe 스크립트 (패키지로 간주되어야 함)는 import (나는 ' 나는 거의 무시 당하고 있다고 확신한다).중첩 된 디렉토리 (Haxe)에서 패키지를 가져 오는 방법은 무엇입니까?

Haxe는 단지 Test이 존재하지 않는다고 말합니다. 내가 wow.test.Test을 얻으려고하면 같은 것을 말하고 test.Test과 동일합니다. 또한 ./wow/test.hx에 패키지 이름을 wow.testtest으로 설정하려고 시도했는데 동일한 상황이었습니다.

./wow 외부에 test.hx을 넣고 정상적으로 가져 오는 경우에만 작동합니다 (wow.test.* 대신 test.*).


내 테스트 구조 :

- ./Main.hx -

package; 

import haxe.unit.TestCase; 
import openfl.display.Sprite; 
import native.*; 
import wow.test.*; 

class Main extends Sprite 
{ 

    public function new() 
    { 
     super(); 
     new Test(); 
    } 
} 

- ./wow/test.hx -

package; 

class Test 
{ 
    public function new() 
    { 
     trace("Dum !!"); 
    } 
} 

아니면 구성해야합니까?

답변

2

Haxe 패키지는 폴더이고 그 안에 들어있는 파일은 모듈입니다. 모듈 자체에는 하나 이상의 유형이 포함될 수 있습니다.

the manual을 인용 :

유형에 (도트 형) 경로는 패키지, 모듈 이름과 유형 이름으로 구성되어 있습니다. 그것의 일반적인 형태는 pack1.pack2.packN.ModuleName.TypeName

당신의 예에서 두 가지 문제가있다

:

  • 당신이 모듈 test.hxTest.hx을에 이름을 바꿀 경우, 모듈 이름은 대문자로 시작해야합니다 import wow.Test.Test으로 유형을 가져올 수 있습니다. 그러나 모듈 이름과 유형 이름이 동일하기 때문에 모듈 이름을 생략하고 import wow.Test을 사용할 수 있습니다. `내가이`Test`를 구성 할 때 콘솔에 올바르게 기록,하지만 난 단지 그것을 내부에 액세스 할 수 있습니다이 문제가 해결 package wow;
+0

wow.Test' :

  • 당신은 모듈 테스트에서 패키지를 선언 할 필요가 . 나는 import :'wow.test.Test'에서 이것을 선언하려했으나, 컴파일러는'wow.test'에'Test'가 존재하지 않는다고 말합니다. 그러나 이것은 많은 도움이됩니다 ... 흠, 그래서 패키지가 왜 내 주인공에서 비어 있어야하는지 설명합니다. – Hydro

  • +0

    haxe 컴파일러는 소문자로 시작하는 모듈을 허용하지 않는 것으로 보입니다.이를 반영하기 위해 답변을 편집했습니다. – memilian

    +0

    이제는 의미가 있습니다. interestin '세부 주셔서 감사합니다. – Hydro

    관련 문제