AS3을 사용하는 Flash CS4의 그래디언트 마스크를 사용하여 자동 되감기 동영상을 만들려고합니다. 내가 가지고있는 유일한 문제는 무비 클립이 타임 라인의 끝에 도달하면 maskingLayerMC가 그라디언트를 잃는 것입니다. 따라서 영화가 되감기를하는 동안 maskingLayer에는 그래디언트가 없습니다. 재생 헤드가 첫 번째 프레임에 도달하고 다시 한 번 재생되기 시작하면 그라디언트가 다시 나타납니다.프로그래밍 방식으로 무비 클립 되감기로 그래디언트 마스크 제거 (FlashCS4/AS3)
마지막 프레임에서도 .cacheAsBitmap 부울 속성을 추가하려고 시도했지만 효과가 없으며 maskingLayerMC가 그래디언트를 잃어 버립니다.
--- FIRST FRAME ---
//Gradient Masking
maskedLayerMC.mask = maskingLayerMC;
maskingLayerMC.cacheAsBitmap = true;
maskedLayerMC.cacheAsBitmap = true;
//Automatically Rewind Movie Clip
var playBackwards:Boolean = false;
addEventListener(Event.ENTER_FRAME, playDirection);
function playDirection (e:Event):void
{
if (playBackwards == true)
{prevFrame();}
else
{play();}
}
--- LAST FRAME---
//Change Boolean Variable To Rewind Movie Clip (Place In Last Frame)
stop();
playBackwards = true;
[업데이트 작업 코드]이 아니면 최선의 해결책인지 왜 작동하는지 잘 모르겠습니다 만
.
--- FIRST FRAME ---
//Automatically Rewind Movie Clip With Gradient Masking
maskedLayerMC.mask = maskingLayerMC;
var playBackwards:Boolean = false;
addEventListener(Event.ENTER_FRAME, playDirection);
function playDirection(e:Event):void
{
if (playBackwards == true)
{
prevFrame();
maskingLayerMC.cacheAsBitmap = true;
maskedLayerMC.cacheAsBitmap = true;
}
else
{
play();
maskingLayerMC.cacheAsBitmap = true;
maskedLayerMC.cacheAsBitmap = true;
}
}
--- LAST FRAME---
//Change Boolean Variable To Rewind Movie Clip (Place In Last Frame)
stop();
playBackwards = true;
문제가 단순히 playDirection의 함수 내에서 한 번에 속성을 추가 이후 prevFrame() 함수입니다 충분하지 않은 것 같다. 그래서 다음 코드는 좌절하게 작동하지 않습니다.
addEventListener(Event.ENTER_FRAME, playDirection);
function playDirection(e:Event):void
{
maskingLayerMC.cacheAsBitmap = true;
maskedLayerMC.cacheAsBitmap = true;
if (playBackwards == true)
{prevFrame();}
else
{play();}
}
은 키 프레임 문제가 아닙니다. 당신의 이론을 테스트하기 위해 클립이 끝나기 전에 클립을 되감기하는 함수를 추가했습니다. 마스킹 층은 그래디언트 효과를 잃어 버립니다. 또한 코드 솔루션에서 여유를 고려할 수 있습니까? – TheDarkIn1978
죄송합니다. 여유로운 질문은 벙어리였습니다. 무시하십시오. – TheDarkIn1978