2010-12-10 2 views
2

나는 Timer 클래스를 사용하고 지정된 DisplayObject의 alpha 속성을 제 시간에 제어하여 프로그래밍 방식으로 Action Script 3에서 약간의 페이드 인/아웃 효과를 시뮬레이트하려고합니다. 일반적으로 잘 작동합니다. 내가 기대했던대로. 하지만 상위 DisplayObject를 부모 Sprite에 추가 한 후에는 이상하게 작동합니다. 아이들은 부모 대상과 같은 속도로 퇴색하지 않는 것처럼 보입니다. 시각적으로 눈에 띄며 추악합니다. 부모가 이미 퇴색하기 시작한 후 어린이들이 실제로 따라 오기 전에 짧은 지체가있는 것으로 보입니다. 이를 피하기 위해 추가 조치가 필요합니까?상위 Sprite 및 그 자식 DisplayObjects가 동시에 페이드 인/아웃하지 않습니다 ...?

상위 개체에만 알파 조작을 수행합니다. 논리적이라고 생각했는데 ...

답변

6

는 LAYER로하는 BlendMode을 설정합니다. 설명 주셔서 대단히 감사합니다!
+1

어도비는 이것을 기본값으로 만들어야한다. 블렌딩이 기대하지 않는 많은 사람들이이 문제를 겪고있다. – alxx

+0

나는 Adobe가 실제로 문서를 포함하여 꽤 많이 수정해야한다고 생각한다. ( – jayarjo

+0

나는 항상 그것이 펑키 한 행동이라고 생각했고 거기에 해결책이 있다는 것을 알지 못했다! 그것은 나에게 진짜 문제는 아니지만 여전히 :). – Maurycy

2

간단한 대답을 할 수 있습니다. 부모가 회색 직사각형이고 자식이 더 작은 회색 직사각형이라고 가정합니다. 이제 플래시가 재미있게 작동합니다. 그것은 일종의, 자식 (내부적으로)과 부모 모두의 알파를 설정합니다. parent_.alpha = 0.5이있는 경우 부모의 RECTANGLE (회색 중 하나)이 0.5 투명하고 상위에 THEN이 자식을 그렸다고 상상해보십시오. 또한 0.5로 설정된 알파 (내부적으로 알파 속성은 변경되지 않음)가 있습니다. 다른 0.5 직사각형 위에 0.5 직사각형 하나를 배치하면 교차하는 필드가 나머지보다 보입니다.

나는이 횡설수설이 적어도 반쯤 이해할 수 있기를 바랄 뿐이다. 그것은 우스꽝스럽고 잘 설명해 줄 수 없다. 나는 점을 가지고,

blendMode = BlendMode.LAYER; 
+0

네 : – jayarjo