0
你好滯後,減少顏色隨機梯度漸變動畫(由程序生成的)
我正在做一些測試,隨機顏色漸變tweenings(使用它們作爲背景)。嘗試不同的事情後,我發現代碼here並稍微將其更改爲下面的代碼,這不幸產生了很多延遲(干擾定時器,因此在同一類中)。我使用GreenSock TweenLite/TweenMax引擎:
package{
//...
public class Main extends MovieClip{
var color1:uint = Math.floor(Math.random()*0xFFFFFF + 1);
var color2:uint = Math.floor(Math.random()*0xFFFFFF + 1);
var colors:Object = {left:color1, right:color2};
var newColor1:uint = Math.floor(Math.random()*0xFFFFFF + 1);
var newColor2:uint = Math.floor(Math.random()*0xFFFFFF + 1);
var newColors:Object = {left:newColor1, right:newColor2};
var mySprite:Sprite = new Sprite();
public function Main() {
mySprite.x = 0;
mySprite.y = 0;
stage.addChildAt(mySprite, 1);
drawGradient();
animateBackground();
//...
}
//...
function drawGradient(){
var m:Matrix = new Matrix();
m.createGradientBox(805, 485, 0, 0, 0);
mySprite.graphics.beginGradientFill(GradientType.LINEAR, [colors.left, colors.right], [1, 1], [0x00, 0xFF], m, SpreadMethod.REFLECT);
mySprite.graphics.drawRoundRect(0,0,805,485, 0);
stage.setChildIndex(mySprite, 1);
}
function animateBackground(){
TweenMax.to(colors, 3, {hexColors:{left:newColor1, right:newColor2}, onUpdate:drawGradient, onComplete:reRandomize});
}
function reRandomize(){
color1 = newColor1;
color2 = newColor2;
newColor1 = Math.floor(Math.random()*0xFFFFFF + 1);
newColor2 = Math.floor(Math.random()*0xFFFFFF + 1);
animateBackground();
}
一切工作正常,但滯後不斷增加和增加。爲了讓自己成爲一個想法,swf,以前是36 kB大,只是用這種顏色實現升至74 kB。
我想知道是否有更有效的方法來處理這種效應,或者是代碼中特別滯後的東西。有人知道一種方式嗎?任何幫助將是真棒,非常感謝。
預先感謝您!
注意:我知道這是滯後的原因,經過多次測試後,不同的東西都被禁用了,所以過度的延遲不太可能來自其他來源。
謝謝!我不知道我沒有意識到。現在滯後明顯變小。無論如何,有沒有一種滯後的方式來做這種補間?現在工作正常,但我想知道是否有其他更有效的方法來處理它。再次感謝你! – Haekoth
沒關係,發現滯後的問題,不是這個。謝謝你的幫助! – Haekoth