我想創建一個自動回捲電影在Flash CS4中使用漸變蒙版使用AS3。我遇到的唯一問題是當影片剪輯到達時間線結束時,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;
看來,問題出在prevFrame()函數,因爲簡單的playDirection函數內部一次添加的屬性是不夠的。所以下面的代碼令人沮喪地不起作用。
addEventListener(Event.ENTER_FRAME, playDirection);
function playDirection(e:Event):void
{
maskingLayerMC.cacheAsBitmap = true;
maskedLayerMC.cacheAsBitmap = true;
if (playBackwards == true)
{prevFrame();}
else
{play();}
}
似乎不是關鍵幀問題。爲了測試你的理論,我添加了一個函數在剪輯到達結尾之前倒回。掩蔽層仍然失去了漸變效果。 此外,是否可以考慮在您的代碼解決方案中進行緩解? – TheDarkIn1978 2010-02-17 23:01:32
對不起,我的寬鬆問題是愚蠢的。請忽略。 – TheDarkIn1978 2010-02-17 23:24:54