2014-06-12 4 views
1

DevilDog라는 클래스가 있다고 해봅시다. 이 클래스 DevilDog에는 애니메이션 및 그래픽을 제외한 악마 개에 관해 필요한 모든 정보가 들어 있습니다. 무비 클립을 DevilDog 클래스에 통합하는 가장 좋은 방법은 무엇입니까?클래스 그래픽을 클래스 자체에 연결하기

예제가 도움이 될 것입니다. 어떻게 든 DevilDog와 같은 폴더에 영화 클립을 저장할지 또는 중앙 FLA를 사용할지 여부가 확실하지 않습니다. 액션 스크립트 용 무비 클립을 내보내는 데 필요한 파일입니다. 아, DevilDog는 fla와는 별도의 폴더에 포함됩니다. 파일

Thnx!

답변

1

이렇게하는 방법은 여러 가지가 있으며 "최상의"습관은 없습니다. 모두 그 파일을 만드는 방법에 달려 있습니다.

일반적으로 DevilDog 클래스는 "자산"매개 변수를 사용하고 그래픽 개체를 멤버 변수 내에 유지합니다. 이것이 의미하는 것은 논리가 그래픽과 분리되어 있으며, 다른 그래픽을 사용하여 클래스를 사용할 수 있으며,이를 구성 할 때 인수로 전달하는 것입니다.

public class DevilDog { 
    private var _graphic:Sprite; // could be MovieClip, Bitmap, whatever you have 

    public function DevilDog(graphic:Sprite) { 
     _graphic = graphic; 
    } 

    // OR 
    public function setGraphic(graphic:Sprite):void { 
     _graphic = graphic; 
    } 
} 

공통 : -

당신이 당신의 사전에 일 할 수있는이 방법, 부하 자산을 당신이 원하는 모든 방법으로 조작, 필요한 경우이를 전환 등의 예제 코드는 다음과 유사 할 것 연습은 그래픽을 단지 한 번 (어쩌면 생성자에서) 설정하는 것입니다. 이것은 인스턴스화 된 그래픽이 있고 모든 것이 작동하는 문제에서 실행되지 않고 어딘가에서 새로운 그래픽이 설정되고 모든 것을 엉망으로 만들기 때문에 수행됩니다.

기본적으로 이것은 가장 많이 사용되는 방법이며, 왜 그런지 이해할 수 있습니다. 다른 방법이 있지만 거의 항상 작동합니다.

+0

세터 접근 방식이 더 좋을 것이라고 생각합니다. 런타임에 스킨을 전환 할 수 있다는 것은 매우 강력합니다. 즉, 캐릭터에 대한 훨씬 더 일반적인 기본 클래스 (동작을 공유한다고 가정 할 때)를 볼 수 있고, 모양에 따라 다른 스킨을 제공 할 수 있습니다. –

+0

그렇기 때문에 나는 그것을하는 법을 진정으로 알지 못하는 모든 사람들을위한 일반적인 관행이라고 말한 것입니다. 의존성 주입을 마스터하고 제대로 처리한다면 - 훌륭한 접근 방법입니다! 나는 런타임에 새로운 그래픽을 다루는 것에 대해 너무 신경 쓰지 않기를 바랬다. 여하튼 좋은 점! :) –

+0

thnx, 당신의 대답을 위해! 매우 도움이 :) – theseal53

관련 문제