2010-05-09 3 views
0

AS3으로 전환 한 후 UI 클래스가 하나의 클래스로 여러 프레임에 걸쳐있는 MovieClip을 관리하는 가장 좋은 방법을 생각해 왔습니다. 지금 작업하고있는 예제는 간단한 전자 메일 양식입니다. 제 2 프레임이 처음으로 돌아 가기 위해 "감사합니다"라는 메시지와 버튼이 클래스가있는 멀티 프레임 MovieClips를 가장 잘 관리하는 방법은 무엇입니까?

  • 을 (제출 '버튼을, 텍스트 입력)

    • 1 프레임이 폼 요소를 가지고 : 나는 두 개의 프레임이있는 무비 클립을 가지고 프레임 나는 사용자 정의 클래스 (Emailer)에 무비 클립을 연결 한 도서관에서

    을 (다른 이메일을 보내). 즉각적인 문제는 두 번째 프레임의 버튼에 MouseEvent.CLICK 이벤트를 어떻게 할당합니까? 이 시점에서 타임 라인에 코드를 넣는 것을 피하려고합니다 (stop() 호출 제외). 이것은 내가 지금이 문제를 '해결'하고 방법입니다

    • Emailer 내가 dispatchEvent(new Event("frame 2"));를 호출하고 프레임 변화 동영상 클립의 2 프레임 (addEventListener("frame 2", onFrameChange))
    • 에 대한 이벤트 리스너를 등록 (난 안하는 것을 선호 프레임에이 코드를 가지고,하지만 난이 방법

    내 두 불만은 처음에는 다른 클래스의 방법을 통해 퍼져 addEventListener 호출 (I 오히려 것을 가지고 있음을하다) 할 다른 모르겠어요 한 가지 방법으로 등록 된 모든 UI 이벤트 리스너), 두 번째로 dispatc해야합니다. 사용자 정의 "onFrameChange"이벤트. 두 번째 불만 사항은 단지 2 개 이상의 프레임이있는 MovieClips에서 기하 급수적으로 늘어납니다.

    내 소위 솔루션 느낌은 나를 더러워 져서 내 머리를 아프게합니다. 다르게 할 일에 대한 조언을 찾고 있습니다. 아마도 내가보고 있어야하는 디자인 패턴이있을 것입니다. 나머지 애플리케이션은 클래스 파일로 작성되지만 플래시 IDE 코드 편집기는 싫어하더라도 자존심을 삼켜 타임 라인 코드를 작성해야합니까?

    나는 절대적으로 이벤트 시스템을 좋아하고 코딩 응용 프로그램을 가지고 있어도 문제가 없지만, 나는 mutl-frame 영화 클립 및 코드로 작업 할 때 AS2의 관점에서 생각하고있다. 모든 도움이 크게 감사 할 것입니다.

  • 답변

    2

    불행히도 최선의 방법은 멀티 프레임 코딩 스타일을 버리는 것입니다. 당신이 말했듯이, 다른 프레임에 그런 것들이 있으면 문제가 생기고, 더 많은 프레임을 기하 급수적으로 늘릴 수 있습니다.

    타임 라인을 피하는 빠르고 더러운 해결책은 각 프레임의 내용을 특정 MovieClip 안에 모두 담은 다음 부모 MC의 첫 번째 프레임에있는 모든 MovieClip을 갖는 것일 수 있습니다. 그런 다음 섹션간에 전환하려면 해당 MovieClip 중 하나를 투명하게 설정하고 다른 세그먼트는 표시되도록 설정할 수 있습니다. 따라서 Emailer 예제의 경우, 사용자가 전자 메일을 보내면 양식을 보이지 않게 설정하고 다시 버튼이 표시된 상태로 화면에 표시하십시오.

    이렇게하면 클래스의 생성자가 호출 될 때 다른 프레임의 버튼 안에 이벤트 리스너를 설정할 수 있으며 프레임 변경을 감지하도록 설정 한 모든 이벤트에 대해 걱정할 필요가 없습니다. 내가 말했듯이, 아마도 약간의 더러운 해결책 일 것입니다. 정말로 당신이하려는 일에 달려 있습니다.

    희망 나는 당신의 질문을 오해하지 않은, 이것은 도움이 :)

    debu 될 수 있음을

    +0

    당신은 전혀 오해하지 않았다. 나는 전에 당신의 빠르고 더러운 해결책을 해왔다. 그리고 그것이 작동하는 동안, 나는 첫 프레임에 모든 것을 가지고 있다는 생각을 좋아하지 않는다. (나는 자원에 대해 걱정하고있다. 호깅/천천히). 멀티 프레임 코딩 스타일을 사용하지 않았다면, 그 자리를 차지하기 위해 무엇을 권하고 싶습니까? MC의 각 프레임이 해당 클래스의 1 프레임 MC에있게됩니까? –

    +0

    그래, 그게 내 다른 제안이 될거야, 그 솔루션을 관리 할 수있는 방식으로 작동하도록 조언하는 것이 얼마나 좋은지는 잘 모르겠다. 서로 다른 정보가있는 프레임 수에 따라 제어가 다소 떨어질 수 있습니다. 그러나 어떤 정보를 표시 하느냐에 따라 많은 프레임을 하나의 기본 클래스로 압축 할 수 있습니다. 동적 인 텍스트 상자는 표시 할 내용에 따라 크기를 조정하고 위치를 변경할 수 있습니다. 여러 프레임을 사용하는 복잡한 예제는 무엇입니까? – debu

    +0

    나는 또한 동의한다. 여러 프레임을 사용하는 것이 애니메이션에는 좋지만 UI 및 응용 프로그램 흐름을 정의하는 데는 좋지 않습니다. 두 개의 다른 형식을 다른 영화 클립으로 만들고 필요할 때 생성/삭제 (숨기기/숨김 해제)하십시오. – davr

    1

    당신은 debu 제안처럼 응용 프로그램의 각 섹션의 요소와 무비 클립을 만들 수 있으며, 각 클래스에 대한 클래스를 만들면 원하는 언제든지 addChild/removeChild를 수행 할 수 있습니다. (기본 클래스의 해당 클래스에 대한 객체를 선언 할 때까지)

    저는 이러한 방식을 사용하고 있으며 더러움을 느끼지 않습니다. 아시다시피 첫 번째 프레임에는 원하는 부분 만 포함되므로 다른 섹션과 목록을 인스턴스화 할 수 있습니다. ko는 ADDED_TO_STAGE 이벤트를 생성자 생성자 메소드에서 처리합니다.

    관련 문제