国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

做好網(wǎng)站建設(shè)的重要性app優(yōu)化建議

做好網(wǎng)站建設(shè)的重要性,app優(yōu)化建議,企業(yè)網(wǎng)站每年的費(fèi)用,鞍山 網(wǎng)站建設(shè)cocos2 使用 Layout 組件后,子節(jié)點(diǎn) Label 高度變化后,抖動(dòng)問題 最近使用 cocos2 做了一個(gè)簡(jiǎn)單的效果,就是類似于DeepSeek問答的效果,當(dāng)然數(shù)據(jù)是寫死的,沒有對(duì)接接口,僅僅前端模擬而已。在做效果的時(shí)候發(fā)現(xiàn)一…

cocos2 使用 Layout 組件后,子節(jié)點(diǎn) Label 高度變化后,抖動(dòng)問題

最近使用 cocos2 做了一個(gè)簡(jiǎn)單的效果,就是類似于DeepSeek問答的效果,當(dāng)然數(shù)據(jù)是寫死的,沒有對(duì)接接口,僅僅前端模擬而已。在做效果的時(shí)候發(fā)現(xiàn)一個(gè)問題,就是我在父容器中配置了Layout組件,按理說這個(gè)組件會(huì)自動(dòng)布局的,但是我發(fā)現(xiàn)向子節(jié)點(diǎn) Label 往里 push 文字的時(shí)候,在換行了的時(shí)候,布局會(huì)閃一下子,這篇文章主要解決這個(gè)問題。

問題

當(dāng)我通過代碼,每隔20毫秒的時(shí)候,向 Label 的 string 中追加一個(gè)字符,正常是沒有問題的,但是當(dāng)換行的時(shí)候,布局會(huì)抖動(dòng)一下,就像下面的樣子:

在這里插入圖片描述

能看出來每當(dāng)換行的時(shí)候會(huì)出現(xiàn)抖動(dòng)的問題,可能截取GIF圖,看的不是很明顯,實(shí)際看起來很嚴(yán)重。

代碼其實(shí)很簡(jiǎn)單:

	this.timer = setInterval(() => {// 如果沒有回答完則繼續(xù)添加文字if (this.index < this.answerData.think.length) {// 向 label 中添加文字(關(guān)鍵代碼!)txtNode.getComponent(cc.Label).string += this.answerData.think[this.index];this.index++;    // 文字索引+1// 進(jìn)度條劃到最后面let chatBox = cc.find('Canvas/page/chatBox');chatBox.getComponent(cc.ScrollView).scrollToBottom(0.1);} else {// 回答完了就銷毀定時(shí)器clearInterval(this.timer);this.timer = null;this.index = 0;}}, 25)

上面寫了個(gè)案例代碼,主要就是如果文字沒有加載完,就每隔25毫秒向Label中添加一個(gè)文本進(jìn)去。

原因

為啥會(huì)出現(xiàn)閃動(dòng)的問題其實(shí)很顯而易見,就是當(dāng)換行了的時(shí)候,文本高度增加了,但是 Layout 沒有立即響應(yīng),他需要下一幀才會(huì)渲染,所以說當(dāng)子節(jié)點(diǎn)高度增加了,父元素高度還沒來的急改變,子組件撐出父元素了,所以文本往上跑了,下一幀渲染的時(shí)候,父元素計(jì)算出了最新高度,父元素高度合適了,撐出去的子節(jié)點(diǎn)又回來了,平時(shí)不會(huì)撐出去,因?yàn)樽庸?jié)點(diǎn)高度不會(huì)變,只有子節(jié)點(diǎn)換行了,高度才會(huì)變化,才會(huì)出現(xiàn)這個(gè)問題。

解決

解決起來其實(shí)就幾行代碼,很簡(jiǎn)單。

就是當(dāng)子節(jié)點(diǎn)高度發(fā)生變化的時(shí)候,我們手動(dòng)強(qiáng)制刷新一下文本組件,然后在強(qiáng)制刷新一下需要重新布局父元素就可以了,代碼也很簡(jiǎn)單:

// 文本強(qiáng)制刷新
txtNode.getComponent(cc.Label)._forceUpdateRenderData(); 
// 父節(jié)點(diǎn)強(qiáng)制刷新
thinkNode.getComponent(cc.Layout).updateLayout()

txtNode.getComponent(cc.Label)._forceUpdateRenderData(); 解釋:

  • txtNode:一個(gè)CCNode 對(duì)象,表示文本標(biāo)簽所在的節(jié)點(diǎn)。
  • getComponent(cc.Label):獲取該節(jié)點(diǎn)上掛載的cc.Label組件,用于顯示文本
  • _forceUpdateRenderData():強(qiáng)制更新標(biāo)簽的渲染數(shù)據(jù)。通常在修改文本內(nèi)容后,引擎會(huì)自動(dòng)更新渲染,但某些情況下(如立即需要獲取文本寬度),需要手動(dòng)強(qiáng)制刷新。 _前綴表示這是一個(gè)內(nèi)部方法,不建議直接調(diào)用,但在必要時(shí)可用于優(yōu)化渲染流程。

thinkNode.getComponent(cc.Layout).updateLayout(); 解釋:

  • thinkNode:一個(gè) CCNode 對(duì)象,表示布局容器節(jié)點(diǎn)。
  • getComponent(cc.Layout):獲取該節(jié)點(diǎn)上掛載的cc.Layout組件,用于自動(dòng)排列子節(jié)
  • updateLayout():立即更新布局。當(dāng)動(dòng)態(tài)添加、移除或調(diào)整子節(jié)點(diǎn)后,調(diào)用此方法觸發(fā)布局重新計(jì)算,確保子節(jié)點(diǎn)按指定規(guī)則排列(如水平 / 垂直排列、網(wǎng)格等)。

這就可以了,如果套了好幾層 Layout 布局的父節(jié)點(diǎn),那個(gè)每一層父節(jié)點(diǎn)都要從里往外強(qiáng)制刷新一遍,這樣就可以了。

在這里插入圖片描述

這樣就不會(huì)再出現(xiàn)閃動(dòng)問題了,其實(shí)代碼很簡(jiǎn)單,只不過不知道原因的話可能就需要卡住好久。

今天就到這里,拜了個(gè)拜!!!

http://aloenet.com.cn/news/35945.html

相關(guān)文章:

  • 做壞事小視頻網(wǎng)站企業(yè)培訓(xùn)計(jì)劃
  • 泰安百度做網(wǎng)站的百度搜索熱度排名
  • 涼山網(wǎng)站開發(fā)推廣計(jì)劃怎么做
  • dreamweaver教程做網(wǎng)站新浪網(wǎng)今日烏魯木齊新聞
  • 網(wǎng)站搭建 審查重慶搜索排名提升
  • 做代還的人都聚集在哪些網(wǎng)站怎么開網(wǎng)店
  • 渭南做網(wǎng)站怎么免費(fèi)創(chuàng)建個(gè)人網(wǎng)站
  • 自己0基礎(chǔ)怎么創(chuàng)業(yè)seo搜索引擎優(yōu)化人員
  • 網(wǎng)站建設(shè) 北京優(yōu)化網(wǎng)站建設(shè)
  • 東莞做網(wǎng)站那家好網(wǎng)站優(yōu)化聯(lián)系
  • 做網(wǎng)站推廣費(fèi)用網(wǎng)絡(luò)推廣代理
  • 做網(wǎng)站需要學(xué)什么蘇州seo網(wǎng)站管理
  • 可以加外鏈的網(wǎng)站成都網(wǎng)站推廣哪家專業(yè)
  • 沈陽(yáng)建設(shè)網(wǎng)站騰訊廣告推廣平臺(tái)入口
  • 北京網(wǎng)站搭建服務(wù)商南寧百度推廣排名優(yōu)化
  • 跨境電商單頁(yè)網(wǎng)站的詳情頁(yè)怎么做的如何推廣自己成為網(wǎng)紅
  • 永川做網(wǎng)站萬能導(dǎo)航網(wǎng)
  • 網(wǎng)站整套模板品牌整合推廣
  • 網(wǎng)站建設(shè)培訓(xùn)公司國(guó)內(nèi)比百度好的搜索引擎
  • 養(yǎng)殖場(chǎng)網(wǎng)站源碼平臺(tái)軟件定制開發(fā)
  • 當(dāng)當(dāng)網(wǎng)網(wǎng)站系統(tǒng)建設(shè)的意義搜索引擎優(yōu)化方法包括
  • 新吳區(qū)推薦做網(wǎng)站電話2021國(guó)內(nèi)最好用免費(fèi)建站系統(tǒng)
  • 專為網(wǎng)站做點(diǎn)擊量網(wǎng)絡(luò)營(yíng)銷師工作內(nèi)容
  • 簡(jiǎn)述網(wǎng)站設(shè)計(jì)的原則在線外鏈工具
  • 設(shè)計(jì)參考圖網(wǎng)站龍華百度快速排名
  • wordpress固定鏈接設(shè)置后404seo推廣是什么意思呢
  • 目前網(wǎng)站開發(fā)語言深圳全網(wǎng)推廣
  • 個(gè)人網(wǎng)站不備案做經(jīng)營(yíng)性質(zhì)網(wǎng)站百度廣告投放技巧
  • 網(wǎng)站域名被劫持怎么辦百度識(shí)圖搜索網(wǎng)頁(yè)版
  • 手機(jī)軟件下載大全seo優(yōu)化設(shè)計(jì)