해당 방법을 static
으로 표시했습니다. 즉, 해당 클래스의 클래스 자체가 인스턴스에 속하지 않음을 의미합니다.
class_Object.spawn()
그러나이 의도 한 내용이 아 R 수도 있습니다,하지만 구현을 보지 않고 말을하기는 어렵습니다 : 당신이 말을 정의
는 메소드를 호출합니다.
static
키워드를 정의에서 제거하면
인스턴스에 첨부되며 설명 된 방식으로 액세스 할 수 있습니다.
주제에 대한 Adobe 문서는 here을 참조하십시오.
귀하의 의견에 답변하기 위해, 그것에 대해 생각하는 간단한 방법은 "클래스"가 "인스턴스"를 만드는 청사진입니다.
그래서 "청사진"에게 청사진의 새로운 인스턴스를 "건설"한다고 말하면 new class_Object()
라고 말하면됩니다. 측면에서 청사진을 사용하면 인스턴스 (또는 인스턴스 메서드)에서 사용할 수있는 메서드/속성을 정의 할 수 있습니다. 또한 "청사진"자체 (또는 정적 메서드)에서 사용할 수있는 메서드/속성을 정의 할 수도 있습니다.
그래서 예를 들어 그런 다음 Car
public class Car {
public function startEngine():void {
// This is an instance method, it will be available to
// any instance of a car, or new Car();
// Note: "this" in this context refers to the current instance of the car
// that the method is being called from
}
public static function compare(Car car1, Car car2):bool {
// This method belongs to the blueprint of a car
// Note: "this" doesn't make any sense in this context, because we
// aren't talking about a particular instance.
}
}
의 고전적인 예를 사용 : 다른 클래스에서 "확장"하면
var mercedes:Car = new Car();
var bmw:Car = new Car();
mercedes.startEngine(); // call an instance method. notice we call it from a particular instance of a car.
Car.compare(mercedes, bmw); // call an static method. notice we call it from the class of Car.
, 당신은 "대출"다른 클래스의 기능이며, 자신의 기능을 추가/대체합니다. 하지만 인스턴스가있는 한 "공개"방법 인 경우 해당 인스턴스가 사용 가능한 곳에서 외부에서 사용할 수 있습니다. 그게 당신이 대답하는 데 도움이되는지 모르겠습니다.
아 내가 볼 공공 당신의 class_Object 내부의 방법을 확인해야합니다. 그러나, 나는 어쨌든 정확하게 이해한다면, 그것들은 하나의 인스턴스가 아니라 두 개의 별도 클래스입니다. 따라서 MovieClip을 확장하는 Main 클래스와 Sprite를 확장하는 Object 클래스가 있습니다. Main 파일이 오브젝트 파일을 확장 한 경우에만 작동합니다. 도와 주셔서 감사합니다! – Artharos
@Artharos 님이 내 답변을 업데이트하여 귀하의 의견을 피할 수 있도록 노력하겠습니다. –
그건 분명 도움이되는데, 지금 수업을 더 잘 이해하게되어 감사합니다! 그러나 위와 같이 객체 클래스의 인스턴스를 호출하고 호출하고 있으므로 위와 같은 방법으로 호출하면 오류가 발생합니다. 나는 변수를 설정하고 Enter_Frame 함수 내에서 메소드를 호출하는 것이 중요하지 않다고 확신하지는 않습니다. 아, 그리고 내가 한 것처럼 정적 메서드를 호출하려고하면 오류가 발생합니다. '1061 : 정적 형식 클래스가있는 참조를 통해 가능한'정의되지 않은 메서드 '메서드'를 호출합니다. '대단히 고맙습니다! – Artharos