내 수업에서 알 수없는 프레임에서 특정 애니메이션을 참조해야한다는 것을 알았습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 custum 이름을 만들고 클래스의 모든 인스턴스가 특정 애니메이션에 동일한 레이블을 지정하도록 지정해야합니다. 예를 들면 다음과 같습니다.클래스 파일의 애니메이션?
public class CanBeHurt{
public CanBeHurt() extends MovieClip{
// constructor code here
}
public function hurt():void{
gotoAndPlay("hurt");
}
}
이 클래스의 모든 인스턴스는 상처 애니메이션 "상처"의 시작을 표시하도록 강제됩니다. 나는
public class CanBeHurt{
private var hurtAnimationLabel: String;
public CanBeHurt(hurtAnimationLabel: String) extends MovieClip{
this.hurtAnimationLabel = hurtAnimationLabel;
}
public function hurt():void{
gotoAndPlay(hurtAnimationLabel);
}
}
그러나 불행하게도 더 복잡한 객체로, 이미 생성자과 많은 애니메이션과 다른 입력 인수의 무리가를 : 또는 그런 것처럼, 프레임을 지정 생성자 문자열에 걸릴 수있다 정말로 더 이상 추가하고 싶지 않습니다. 그리고 마지막으로, 내가 생각 해낸 마지막 옵션은 다음과 같습니다
public class CanBeHurt{
private var hurtAnimationLabel: String;
public CanBeHurt() extends MovieClip{
this.hurtAnimationLabel = this.currentLabels[0];
}
public function hurt():void{
gotoAndPlay(hurtAnimationLabel);
}
}
불행하게도, 다수의 애니메이션으로, 지금은 제대로 참조 할 수 있도록 특정 순서로 내 애니메이션 레이블이 강제하고있다. 3 가지 방법 중 가장 첫 번째 방법이 가장 만족 스럽지만 더 좋은 방법이 있습니까?
당신이 일반적으로 [상태 머신 (http://en.wikipedia.org/wiki/Finite를 구축 끝날 것이다 : 수년에 걸쳐 나를 위해 잘 작동했다 -state_machine)를 사용하여 애니메이션 논리를 추적합니다. 일부 애니메이션은 중단 될 수 있지만 다른 애니메이션은 시작될 때 콜백을 트리거하려는 경우도 있고, 완료 할 때가 있고 때로는 전혀 콜백을 트리거하지 않는 경우도 있습니다. 일부 애니메이션 반복, 일부 없습니다. 그 모든 논리는'MovieClip'에 합성 된 전용 클래스로 캡슐화하는 것이 가장 좋습니다 –