문제

가 있으로 클래스 세터 및 getter 능합니다.내가 조정할 필요가 있는 하나의 클래스의 인스턴스는 세터 기능을 처리하기 전에 입력 할당하는 지역 변수.

또,더 정교한 방법으로,어떻게 해야 하는 대신에 사용$$$에서는 아래의 예?

class MyClass{
    private var _legend:Array;
    function set legend(legend:Array):void{
        _legend= legend;
    }
    function get legend():Array{
        return _legend;
    }
    function someFunction():void{
        foo();
    }
}
var mc:MyClass = new MyClass();
mc.someFunction = function():void{
    bar();
}
mc.$$$ = new function(legend:Array):void{
    _legend = process(legend);
}
도움이 되었습니까?

해결책

일반적으로 당신은 서브 클래스 MyClass 수정하는 행위(다형성)의 MyClass.

class MySubClass extends MyClass {
        function set legend(legend:Array):void{
                // do your checking here. Then call the 
                // setter in the super class.

                super.legend = legend;
        }
}

다른 팁

왜 당신이 통과 인스턴스를 처리합니다.

mc.legend = process(legend);

이것이 가능하지 않은 경우,수정할 수 있습니 한결같이 끈기와 열정의 길을 걸 MyClass 과 선택적 부울 값을 처리합니다.

function set legend(legend:Array, flag:bool = false):void{
            _legend = flag ? process(legend) : legend;
}

참고하는 시제품이 상속을 제한하지 않습 자체 특정 인스턴스입니다.에서 문서:

프로토 타입의 유산만 상속 메커니즘의 이전 버전에서 ActionScript 및을 제공하는 다른 형태의 상속 ActionScript3.0.각 클래스에는 관련된 프로토타입 개체의 속성 및 프로토타입 개체가 공유하는 모든 클래스의 인스턴스.

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