2010-05-24 4 views
1

Flex/Air의 꽤 큰 응용 프로그램을 만들고 있습니다. GraniteDS and Tide을 사용하여 Java EE 서버의 모델과 상호 작용합니다.Flex의 모듈성

저는 Flex에서 모듈화와 모듈에 대해 읽었습니다. 응용 프로그램은 이미 구축되었으며 일부 수업과 부품을 다시 디자인 할 방법을 찾고 있습니다. 지금까지 읽은 것부터 모듈이 동적으로로드 될 수있는 다른 swf라는 것을 이해합니다. 대부분의 자습서/설명서는 실제 개발자 대신 Flex 또는 Air를 사용하는 "프로그래머"를 대상으로하므로 온라인 리소스를 더 쉽게 얻을 수 있습니다.

아직 이해할 수없는 -이 모듈 아래에 ActionScript 클래스 또는 MXML 뷰를 캡슐화하는 방법입니다.

일부 코드를 라이브러리로 분리했습니다. 예를 들어, Granite에서 생성 된 코드는 "서버"라이브러리에 있습니다. 그러나 중재자, 컨트롤러 및 뷰와 로직의 일부를 분리하고 싶습니다. 모듈을 갈 길이 있습니까? 아키텍처를 구축하기 위해 더 나은 관점을 얻기 위해 "인형 용 모듈"또는 "프로그래머 용 첫 번째 Flex 모듈"이 있습니까? 언제 도서관을 선택하고 언제 모듈을 선택할 것인가?

저는 Flex 3.5를 사용하고 있습니다. 앞으로 Flex 4로 마이그레이션하는 것은 먼 미래로, Flex 4는 아무런 답변도주지 않습니다!

+0

"실제로 대부분의 자습서/문서는 실제 개발자가 아닌 Flex 또는 Air를 사용하는 프로그래머"를 겨냥한 것이므로 온라인 리소스를 사용하기가 더 어려워집니다. " 책에 관한 한, "flex 3 요리 책"에는 모듈 (링크 : http://oreilly.com/catalog/9780596529857)에 대한 몇 개의 좋은 장이 있으며 웹에 많은 자원이 있습니다. –

+0

내가 찾은 대부분의 예제에는 코드 대신 MXML 안에 모든 로직이 포함되어 있습니다. Flex를 배우는 프로그래머가 아니라 Flex를 배우는 Flash 디자이너를 중심으로하고있는 것으로 나타났습니다. 이것은 다른 청중, 다른 관점입니다. 그러나 개발자에게는 좋은 자원이 적습니다. 어쩌면 "진짜 개발자"가 너무 가혹했습니다 ... –

답변

1

모듈은 서로 의존하지 않는 여러 섹션으로 UI를 캡슐화하기위한 대답입니다. 응용 프로그램 내부의 응용 프로그램과 같은 것으로 생각하십시오.

"코드"를 캡슐화하려는 경우, 비 -ui 액션 스크립트를 의미하므로 클래스 및 클래스 패키지 만 필요합니다. 또한이 코드를 여러 프로젝트에 포함 할 수있는 코드의 컴파일 된 버전 인 swc에 패키지화 할 수 있습니다 (이것이 라이브러리의 의미라고 생각합니다).

비 -ui 코드를 포함하기위한 모듈을 만들고 싶지는 않습니다. 애플리케이션에서 모델/뷰/컨트롤러를 분리하기 위해 모듈을 사용하고 싶지는 않을 것입니다.

응용 프로그램의 일부분을 소유하고있는 경우 대부분의 응용 프로그램은 완전히 전달되지만 약간의 정보가 전달되는 것을 제외하면 응용 프로그램의 나머지 부분에는 실제 종속성이 없습니다. .

모듈을 주로 사용하는 곳은 한 번에 하나의 섹션에서만 작업하는 다른 섹션이있는 응용 프로그램입니다. 다른 섹션이 리소스를 차지할 필요가 없으므로 모듈에 다른 섹션이 있고 필요에 따라로드/언로드합니다.

도움이 되었습니까? 아래의 코멘트에 회신

편집 : 당신이 classses을 캡슐화하고 SWC를 사용하여 내가 플렉스 도서관 프로젝트 의미 도서관으로

. 플렉스 프로젝트 내에서 이러한 라이브러리를 보유하고 있습니까? (각 새 라이브러리가 인 경우 별도의 라이브러리 프로젝트를 사용합니다).

예, flex 프로젝트 내에서 이러한 swc (코드 라이브러리)을 사용할 수 있습니다. 플렉스/플래시 빌더 프로젝트의 lib 디렉토리에 swc을 놓으면 코드가 클래스 경로에 자동으로 추가됩니다. 하나의 swc 안에있는 코드가 그 swc 안에 있는지 확인하십시오.swc가 작동하도록 다른 swc를 사용하지 마십시오.

+0

당신의 대답에 감사드립니다! 그것은 모듈에 대한 나의 개념을 확인해줍니다. 라이브러리 란 클래스를 캡슐화하고 swc를 사용하는 Flex 라이브러리 프로젝트를 의미합니다. Flex 프로젝트 내에서 이러한 라이브러리를 사용할 수 있습니까? (나는 각각의 새로운 라이브러리에 대해 별도의 라이브러리 프로젝트를 사용한다). 저는 XIFF (jabber 클라이언트 라이브러리)를 사용하는 채팅 창에 모듈을 사용하고있어 나머지 프로젝트의 정보는 거의 사용하지 않는다고 생각합니다. –

+0

질문에 대한 답변을 얻으려면 위의 대답에 대한 정보를 추가했습니다. –

+0

예, 저는 swc를 추가합니다. Flex 프로젝트 내에서 해당 프로젝트를 하위 프로젝트로 사용할 수 있는지 궁금합니다. 어쨌든, 신경 쓰지 마세요, 저는 제가 모듈화로 생각했던 것보다 더 잘하고 있다고 생각합니다. 채팅 용 모듈을 추가하고 다른 로직을 라이브러리에 캡슐화합니다. 감사! –