문제

나는 movieclip 서브 클래스를 만들고있다 (그것을 부르자. MyClip) 여러 도서관 자산에 사용하고 싶습니다. ActionScript 코드 에서이 영화 클립을 인스턴스화 할 것입니다. MyClip 특정 속성의 초기 값을 설정할 수있는 생성자 매개 변수가 있습니다.

여러 라이브러리 자산에 사용하려면 "기호 속성"대화 상자의 "기본 클래스"텍스트 상자에이를 지정하는 것으로 보입니다. 문제는 자동 생성 서브 클래스에 매개 변수가있는 생성자가 없다는 것입니다. 대신 Flash는 기본 생성자만으로 이들을 생성하려고합니다. MyClip 기본 생성자가 없습니다.

속성 초기화를 정상적인 방법으로 연기하는 것 외에는이 주위에 어떤 방법이 있습니까?

편집하다: 나는 충분히 명확하지 않았다. 나는 여기서 명확히하려고 노력할 것이다. 이것이라면 MyClip 수업:

public class MyClip extends MovieClip
{
    private var someValue : Number;

    public function MyClip(someValue : Number)
    {
        this.someValue = someValue;
    }
}

그리고 나는 지정했다 MyClip 라이브러리의 Symbol Myclipa의 기본 클래스로서, 나는 이상적으로 할 수 있기를 원합니다. clip = new MyClipA(17); 글을 쓰지 않아도 MyClipA 직접 수업.

도움이 되었습니까?

해결책

MyClipa와 MyClipb 등을 만들어야하는 이유는 MyClip 객체의 동작이있는 개체에 다른 예술을 첨부하는 것입니다.

어쩌면 당신은 다르게 접근하고, 기본 클래스를 만들 수 있습니다 - 당신의 예를 가지고있는대로 myclip, 2 개의 경계를 받아 들일 수 있습니다. 그 중 하나는 예술에 대한 언급입니다.

public class MyClip extends MovieClip
{
    public var art:ArtBaseClass
    private var someValue : Number;

    public function MyClip(someValue : Number, artClass:ArtBaseClass)
    {
        this.someValue = someValue;
        this.art = new artClass();
        this.addChild(art);
    }
}

또한 각 아트 라이브러리 개체에 적용되는 ArtBaseclass에서 필요한 다른 것을 정의 할 수 있습니다.

다른 팁

나는 그것이 실제로 할 수 있다고 생각하지 않습니다. 그러나 수행 할 수 있다면 프로토 타입으로 올바르게 수행됩니다. 아마도 각 기본 클래스의 회의자를 변경할 수 있습니다.

생성자에 대한 기본 인수를 지정해보십시오 (null 특별한 가치로?). 그런 다음 생성자의 시작 부분에 약간의 오류 확인을 추가하여 MovieClip의 현명한 기본값을 설정하십시오. 정말 해킹되지만 드래그 앤 드롭 애니메이션 UI를 사용하여 수행하는 더 좋은 방법이 없다는 것을 아는 한 (코드를 통해서만 수행 할 수 있음).

이것에 대해서도 달려 있다면. 그것을 해결하는 올바른 방법은 MyClip에서 상속받은 MyClipa와 MyClipB를위한 클래스를 만드는 것입니다. MyClip을 기반으로하는 수업이 많이 있다면 번거롭을 수 있습니다. 그런 다음 다시 말하면, 당신은 어쨌든 상속 대신 구성을 사용하는 것에 대해 생각하기 시작하고 싶을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top