2010-12-20 4 views
0

Flash Builder 4를 사용 중이고 큐 포인트와 함께 작동하는 VideoDisplay 구성 요소가 필요합니다. Flex의 VideoDisplay가 기반으로하는 OSMF 클래스의 새로운 버전은 이미 이것을 처리합니다. 아이디어는 기존의 원숭이를 패치하는 것이 아니라 내 자신의 VideoDisplay 구성 요소를 굴리는 것입니다. 이를 위해, 나는 새로운 버전의 OSMF 클래스를 가진 프로젝트와 새로운 VideoDisplay를 별도의 패키지 이름으로 만드는 또 다른 프로젝트를 만들었습니다.Flash Builder에서 충돌하는 패키지 이름을 해결하십시오.

문제는 그 플렉스 4.1 SDK는 원래 패키지 이름으로 OSMF 클래스의 대부분, 성명 등 import org.osmf.media.MediaPlayer; 참조

C에있는 클래스를 포함하고 있기 때문에 : \ 프로그램 파일 \ 어도비 \ 어도비 플래시 빌더 4 \ SDK를 \ 4.1.0 \ 프레임 워크 \

하지 OSMF의 최신 버전에서 MediaPlayer를 클래스를 프로젝트.

OSMF 프로젝트에서 패키지의 이름을 변경하여 이름이 명확하게 지정되었지만 IDE에서 예외가 발생했습니다 (사전 조건 검사 중에 예기치 않은 예외가 발생했습니다. 자세한 내용은 오류 로그를 참조하십시오).

SDK는 항상 (적법하게?) 싸움에서 승리합니까? 프로젝트가 동일하게 명명 된 SDK 클래스를 통해 swc/프로젝트에 대한 참조를 선호하도록하는 (더티?) 방법이 있습니까?

모든 의견을 환영합니다.

편집 : 의견 : 나는 분명히 내 문제를 설명하기가 힘들었습니다. 그래서 여기에 그것은 다시 간다.

Flex는 VideoPlayer 용 OSMF 플랫폼의 이전 버전을 사용합니다. 큐 포인트에 대한 지원이 포함 된 새 버전을 사용해야합니다. 새로운 OSMF 소스를 다운로드했으며 자체 프로젝트에 있습니다. 나는 미래의 유지 보수를 위해이 프로젝트의 패키지 이름을 바꾸지 않는 것을 선호합니다.

구현할 VideoPlayer가 이 아니며 두 번째 프로젝트에있는 경우은 Flex SDK 또는 OSMF의 패키지 이름을 복제하지 않습니다. 충돌은 Flex SDK와 OSMF간에 발생하며, OSFM 또는 SDK 중 하나는 빌드 할 클래스가 아닙니다. 내 프로젝트는 패키지/클래스 이름이있는 Flex SDK의 프로젝트가 아니라 OSMF 프로젝트의 클래스에 액세스해야합니다. Flex SDK는 OSMF를 기반으로하므로 Flex는 패키지와 네임 스페이스를 그대로 유지하므로 이름이 모호합니다.

+0

자신의 클래스에 OSMF 클래스와 동일한 패키지와 이름을 지정하면 사용자 정의 클래스가 프로젝트에서 우선해야합니다. 나는 그들이 당신이 그렇지 않다는 것에 놀랐습니다. – JeffryHouser

답변

1

"Flex 빌드 경로"의 Flex 4.1 SDK에서 OSMF를 제거하십시오.

+0

사실 똑같은 문제가 있지만 Flex 빌드 경로에서 OSMF를 제거하면 osmf.swc 대체본으로 추가 할 때도 프로젝트가 컴파일되지 않습니다 (정보없이 컴파일하기 전에 오류가 발생 함) – Cystack

2

고유 한 패키지 (역 도메인 이름)에 자신의 비디오 구성 요소를 넣지 않는 이유는 무엇입니까? 그것은 여러면에서 더 좋을 것입니다. 귀하를 해당 패키지의 작성자로 구별하고 갈등을 줄여줍니다.

+0

정확히 내가 시도한 것. 문제는 전체 OSMF 라이브러리를 다시 만들고 싶지 않으면 SDK의 OSMF 클래스 대신 참조해야한다는 것입니다. OSMF를 참조하는 비디오 구성 요소는 별도의 패키지에 있습니다. 충돌은 최신 버전의 OSMF와 Flex SDK에서 사용되는 이전 버전 사이입니다. 그것들은 80 % 동등합니다. – Laramie

+0

+1 @Laramie 질문 텍스트를 바탕으로이 답변에서 권장하는 것과 정반대로 시도하고 있습니다.자신의 클래스를 프레임 워크 클래스와 같은 정확한 이름/패키지로 명명하려는 것 같습니다. 프레임 워크 SWC에서 OSMF 패키지의 이름을 바꾸는 것은 제가 시도하려는 것이 아닙니다. – JeffryHouser

+0

"참고 자료"를 언급했지만 "복제하십시오"는 언급하지 않았습니다. 나는 원래의 질문에서 더 명확하게 설명하려고 노력했다. 의견을 주셔서 감사합니다. – Laramie

관련 문제