rollOver에서 광선 효과를 사용하고 rollOut에서 광선 효과가 사라지는 일부 MovieClips를 만들려고합니다. 그러나 롤오버가 rollOver/rollOut 전에 부드럽게 나타난 것처럼 필터를 적용한 내 배경 무비 클립 (갑자기 20x20 벡터 원)이 갑자기 들쭉날쭉하게 보입니다. 여기서 무슨 일이있을 수 있니?GlowFilter 및 기타 문제로 인해 벡터 모양이 고르지 않게 나타납니다.
저는 AS3을 처음 접했기 때문에 예제가 제대로 작동하지 않습니다. 예를 들면 다음과 같습니다.
* 처음으로 항목을 롤오버 할 때 애니메이션 효과가 아니라 광선의 최종 단계가 즉시 표시됩니다. 나는 Tween.rewind()를 생성자에서 우회 할 것이라고 생각했지만 트릭을 수행하지는 않았다. * TweenEvent.MOTION_CHANGE에 대한 addEventListener가 올바른 위치에 있는지 여부도 확실하지 않습니다. 나는 그것을 생성자에 넣으려고했으나 _onMotionChange에 의해 계속 이벤트가 수신되었습니다.
이러한 문제에 대한 도움을 많이 주시면 감사하겠습니다. 그러나 가장 중요한 부분은 글로우 필터가 사라진 후의 들쭉날쭉 한 원입니다.
이것은 내가 지금까지 (약식 예)가 무엇을 : 나는 그것이 TweenEvent.MOTION_FINISH에 대한의 EventListener를 추가하여 _onRollOut에 완료 될 때 필터를 제거하여 단지 내 문제를 해결할 수 있었다
package
{
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
import flash.filters.GlowFilter;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
public class ScoreListItem extends MovieClip
{
private var _glowFilter:GlowFilter;
private var _tweenGlowFilterBlurX:Tween;
private var _tweenGlowFilterBlurY:Tween;
public function ScoreListItem():void
{
_glowFilter = new GlowFilter(0xffffff, 1, 3, 3, 2, 1, false, false);
_tweenGlowFilterBlurX = new Tween(_glowFilter, 'blurX', Strong.easeIn, 1, 5, .8, true);
_tweenGlowFilterBlurY = new Tween(_glowFilter, 'blurY', Strong.easeIn, 1, 5, .8, true);
_tweenGlowFilterBlurX.rewind();
_tweenGlowFilterBlurY.rewind();
addEventListener(MouseEvent.ROLL_OVER, _onRollOver);
addEventListener(MouseEvent.ROLL_OUT, _onRollOut);
}
private function _onRollOver(event:Event)
{
trace('rollOver');
_tweenGlowFilterBlurY.addEventListener(TweenEvent.MOTION_CHANGE, _onMotionChange);
_tweenGlowFilterBlurX.continueTo(5, 1);
_tweenGlowFilterBlurY.continueTo(5, 1);
}
private function _onRollOut(event:Event)
{
trace('rollOut');
_tweenGlowFilterBlurY.addEventListener(TweenEvent.MOTION_CHANGE, _onMotionChange);
_tweenGlowFilterBlurX.continueTo(1, 1);
_tweenGlowFilterBlurY.continueTo(1, 1);
}
private function _onMotionChange(event:Event)
{
trace('motionChange');
this.backgroundCircle.filters = [ _glowFilter ];
}
}
}