亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

cocos creator中關閉canvas的alpha通道帶來的dom渲染問題

cocos creator中關閉canvas的alpha通道帶來的dom渲染問題

cocos?creator里面將`cc.macro.ENABLE_TRANSPARENT_CANVAS`設為false時,也就是關閉canvas的alpha通道時,這個時候canvas背后的任何dom元素就不會去渲染了,原因已經找到了,是瀏覽器自己做的優化。?現在有一個辦法可以解決:用css設置canvas標簽的opacity為0.999999或者將canvas縮放為0.99999倍,但這樣做不夠優雅 ,有什么更好的辦法嗎(現在有一個功能要求canvas背后的dom必須正常渲染)下面是cocos creator官網對于 ENABLE_TRANSPARENT_CANVAS屬性的解釋用于設置 Canvas 背景是否支持 alpha 通道,默認為 false,這樣可以有更高的性能表現。 如果你希望 Canvas 背景是透明的,并顯示背后的其他 DOM 元素,你可以在?cc.game.run?之前將這個值設為 true。 僅支持 Webhttps://docs.cocos.com/creator/api/zh/classes/macro.html#enabletransparentcanvas下面是cocos creator的h5引擎中相關的部分源碼export?default?class?Device?{ /** ????*?@param?{HTMLElement}?canvasEL ????*?@param?{object}?opts ????*/ constructor(canvasEL,?opts)?{ let?gl; //?default?options opts?=?opts?||?{}; if?(opts.alpha?===?undefined)?{ opts.alpha?=?false; } if?(opts.stencil?===?undefined)?{ opts.stencil?=?true; } if?(opts.depth?===?undefined)?{ opts.depth?=?true; } if?(opts.antialias?===?undefined)?{ opts.antialias?=?false; } //?NOTE:?it?is?said?the?performance?improved?in?mobile?device?with?this?flag?off. if?(opts.preserveDrawingBuffer?===?undefined)?{ opts.preserveDrawingBuffer?=?false; } try?{ gl?=?canvasEL.getContext('webgl',?opts) ||?canvasEL.getContext('experimental-webgl',?opts) ||?canvasEL.getContext('webkit-3d',?opts) ||?canvasEL.getContext('moz-webgl',?opts); }?catch?(err)?{ console.error(err); return; } } //... //... }https://github.com/cocos-creator/engine/blob/c2223aba0949da0a54c0822a3632b90535ce038e/cocos2d/renderer/gfx/device.js
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 2139 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號