가) elasticScale 무비클립을 제작한 후 무비클립 1프레임에 아래의 소스를 기입
// 사라지게 함
this._visible = false;
// 무비클립을 탄력적으로 확대 및 축소시키는 메서드
// a는 -2부터 2사이의 실수 (-2<a<2)
// b는 -1부터 0사이의 실수(-1<b<0)
// a*a+4b는 -4부터 0사이의 실수(-4<a*a+4b<0)
// b가 -1에 가까울수록 진동 폭이 큼
// a가 -2에 가까울수록(작을수록) 속도가 빠름
// txscale와 tyscale는 이동할 최종 위치
MovieClip.prototype.elasticScale = function(a, b, txscale, tyscale){
var tempxscale = this._xscale;
var tempyscale = this._yscale;
this._xscale = a*(this._xscale - txscale) + b*(this.prevxscale - txscale) + txscale;
this._yscale = a*(this._yscale - tyscale) + b*(this.prevyscale - tyscale) + tyscale;
this.prevxscale = tempxscale;
this.prevyscale = tempyscale;
};
this._visible = false;
// 무비클립을 탄력적으로 확대 및 축소시키는 메서드
// a는 -2부터 2사이의 실수 (-2<a<2)
// b는 -1부터 0사이의 실수(-1<b<0)
// a*a+4b는 -4부터 0사이의 실수(-4<a*a+4b<0)
// b가 -1에 가까울수록 진동 폭이 큼
// a가 -2에 가까울수록(작을수록) 속도가 빠름
// txscale와 tyscale는 이동할 최종 위치
MovieClip.prototype.elasticScale = function(a, b, txscale, tyscale){
var tempxscale = this._xscale;
var tempyscale = this._yscale;
this._xscale = a*(this._xscale - txscale) + b*(this.prevxscale - txscale) + txscale;
this._yscale = a*(this._yscale - tyscale) + b*(this.prevyscale - tyscale) + tyscale;
this.prevxscale = tempxscale;
this.prevyscale = tempyscale;
};
나) 스테이지에 아래와 같이 세 개의 무비클립을 제작한 후 1프레임에 소스를 삽입합니다.
red_mc0.onEnterFrame = function(){
if(this.hitTest(_root._xmouse, _root._ymouse, 1)==true){
this.elasticScale(1.2, -0.6, 200, 200);
} else{
this.elasticScale(1.2, -0.6, 100, 100);
}
};
red_mc1.onEnterFrame = function(){
if(this.hitTest(_root._xmouse, _root._ymouse, 1)==true){
this.elasticScale(1.2, -0.6, 200, 200);
} else{
this.elasticScale(1.2, -0.6, 100, 100);
}
};
red_mc2.onEnterFrame = function(){
if(this.hitTest(_root._xmouse, _root._ymouse, 1)==true){
this.elasticScale(1.2, -0.6, 200, 200);
} else{
this.elasticScale(1.2, -0.6, 100, 100);
}
};
if(this.hitTest(_root._xmouse, _root._ymouse, 1)==true){
this.elasticScale(1.2, -0.6, 200, 200);
} else{
this.elasticScale(1.2, -0.6, 100, 100);
}
};
red_mc1.onEnterFrame = function(){
if(this.hitTest(_root._xmouse, _root._ymouse, 1)==true){
this.elasticScale(1.2, -0.6, 200, 200);
} else{
this.elasticScale(1.2, -0.6, 100, 100);
}
};
red_mc2.onEnterFrame = function(){
if(this.hitTest(_root._xmouse, _root._ymouse, 1)==true){
this.elasticScale(1.2, -0.6, 200, 200);
} else{
this.elasticScale(1.2, -0.6, 100, 100);
}
};