1 回答

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
您不能有條件地選擇重新繪制到舞臺(tái)上的內(nèi)容。
您擁有的最佳選擇是擁有一個(gè)單獨(dú)的畫(huà)布/緩存,您可以連續(xù)繪制到該畫(huà)布/緩存,然后將其添加為主舞臺(tái)上的位圖源。緩存基本上為你做了這個(gè)。
一種簡(jiǎn)單的方法是將您的自動(dòng)繪制內(nèi)容放入容器中,并且cache()它:
var c = new createjs.Container();
c.addChild(bg, txt); // Add your content
c.cache(0,0,400,800);
然后你不需要在你的舞臺(tái)上使用 autoClear,其他一切都會(huì)正常繪制。您只需要在內(nèi)容更改時(shí)更新緩存即可。使用source-overas 繪制模式會(huì)將當(dāng)前內(nèi)容添加到緩存中,而不是先清除它。
c.updateCache("source-over");
例如,這是一個(gè)小提琴,我在其中為透明框上的一些文本設(shè)置動(dòng)畫(huà)。加法效果看起來(lái)很棒,但它也使圓形做同樣的事情:https ://jsfiddle.net/lannymcnie/yfqne2or/
通過(guò)簡(jiǎn)單地將 bg 和文本放在一個(gè)容器中,然后緩存它,我可以控制哪些部分得到效果,而不影響舞臺(tái)的其余部分。請(qǐng)注意,這確實(shí)會(huì)導(dǎo)致您的內(nèi)容重復(fù)繪制,但實(shí)際上沒(méi)有更好的方法可以使用一個(gè)畫(huà)布來(lái)完成它。https://jsfiddle.net/lannymcnie/yfqne2or/2
添加回答
舉報(bào)