2008-11-05 3 views
1

ActionScript를 내장 한 MXML 클래스를 작성하는 것이 ActionScript 스크립트 파일을 작성하는 것보다 훨씬 쉽다는 것을 알게되었습니다.플렉스에서 MXML 파일을 사용하는 오버 헤드는 일반 액션 스크립트 클래스와 비교해 어떤 오버 헤드가 있습니까?

그러나 파일 크기 측면에서 어떤 종류의 오버 헤드가 MXML 파일을 사용하는지 궁금합니다. 나는 특히 성과에 관심이 없지만, 관련이 있다면 어떤 결과에도 관심이있을 것입니다.

분명히 레이아웃이있는 UI 구성 요소에 대해 이야기하고 있습니다. MXML은 시각화 및 수정하기가 훨씬 쉽지만 컴파일이 정확히 무엇인지 명확하지 않습니다. 나는 무시할 수있는 차이가 있기를 바라고있다.

답변

10

동일한 기능을 사용한다면 MXML이 swf를 더 크게 만들지 않을 것입니다.

크기에 영향을주는 것은 Flex SDK 및 해당 구성 요소를 사용하는 것입니다. MXML 또는 AS3으로 선언했는지 여부에 상관없이 사용하고 있으며 코드는 swf에 내장됩니다. 동일한 토큰으로, Flex RSL을 참조하고 있기 때문에 Flex 객체를 직접 swf에 빌드하는 것을 피하면 어느 쪽이든 같은 크기가됩니다. 데이터 바인딩은 많은 이벤트와 리스너를 생성하므로 일부 부풀림을 유발할 수 있지만 AS3 유틸리티 함수로 데이터 바인딩 메커니즘을 선언 한 것 이상은 아닙니다.

MXML은 중간 AS3 코드를 생성하므로 사용자가 직접 작성하는 것보다 더 자세한 정보 일 수 있으므로 추가 크기를 볼 수 있습니다. (일반적으로 이해하기에 좋은) 이것을 들여다 보면 생성 된 코드를 유지하기 위해 컴파일러 지시어를 볼 수있다.

에서 : http://www.flashguru.co.uk/flex-2-compilation-hidden-goodies

  1. 마우스 오른쪽 단추로 클릭 네비게이터 패널에서 플렉스 프로젝트.
  2. 컨텍스트 메뉴에서 속성을 선택하십시오.
  3. 속성 창에서 Flex 컴파일러를 선택하십시오.
  4. '추가 컴파일러 인수'입력란에 -keep-generated-actionscript를 입력하십시오.
  5. '확인'을 클릭하여 변경 사항을 적용하십시오.
  6. 실행 단추를 클릭하여 Flex 프로젝트를 빌드하십시오.
  7. 네비게이터 패널에서 Flex 프로젝트를 다시 마우스 오른쪽 버튼으로 클릭하십시오.
  8. 컨텍스트 메뉴에서 새로 고침을 선택하십시오. 당신이 할 수 있기 때문에 새로운 폴더를 탐색기 패널에서 플렉스 프로젝트 아래에 나타납니다
  9. 는,

이것은 디버깅 및 프로젝트를 프로파일 링에 일단 할 수있는 좋은 일이 '생성'라는 이름 컴파일러가 올바른 (또는 잘못된) 일을하는 곳을 실제로 확인하십시오.

+0

자세한 내용은. 고마워. 항상 재미있는 케이크 –

0

MXML 또는 순수한 액션 스크립트를 통해 Flex 프레임 워크를 포함하면 최종 SWF의 크기가 크게 늘어납니다.

방금 ​​한 개의 버튼으로 구성된 플래시 무비를 작성했습니다. MXML 버전은 175K이었고 no-Flex 액션 스크립트 버전은 2K였습니다.

내가 나 자신을 사용하지 않는하지만,이 프로젝트는 훨씬 덜 팽창과 (일부) 플렉스 기능을 얻기를 위해 유망 보인다 : 내가 기대했던 것보다

http://code.google.com/p/e4xu/

관련 문제