2016-04-07 23 views
1

使用CreateJS庫處理Canvas手機遊戲。一切順利,除了這個問題:鎖屏後Chrome中無法看到畫布元素

當我通過Home Button退出瀏覽器或鎖定手機,鎖定屏幕或瀏覽器重新啓動後,Canvas元素不可見。刷新解決了這個問題。

我試過了鉻元素檢查器,正如你在屏幕截圖上看到的那樣,元素存在並且它位於正確的位置。我不知道它爲什麼看不見。

任何想法?

enter image description here

+0

也許你的畫布大小改變,或它的某個父的innerHTML已編輯。 – Kaiido

+0

我有一個函數,它調整窗口大小更改的畫布大小 - 以優化畫布位置。但是這隻影響畫布寬度/高度和頂部/左側屬性。正如你在屏幕上看到的,畫布元素的位置是正確的。這讓我覺得它的透明屬性設置爲0.但事實並非如此。你有任何其他變種爲什麼會發生? – zur4ik

+0

如果您按照自己的想法調整畫布的「寬度」和「高度」屬性,那麼畫布及其所有上下文的屬性將被清除,然後您必須重繪所有內容。如果你用css調整大小,那很糟糕,但這是一個畫布被清除的錯誤。 – Kaiido

回答

1

如果你搶像素,你會發現,它實際上仍然存在。這可能是Chrome 49/50中的一個錯誤(我試圖找到一個可接受的解決方法)。

如果你改變了畫布寬度爲0,然後返回到正確的尺寸,或旋轉裝置幾次按運行選項卡按鈕,然後交換回來你會發現它會重新開始可見。

這似乎是一些休眠的問題與硬件加速:/

+0

看起來像你給了我最好的解釋:) – zur4ik

+0

沒問題 - 如果我找到一個解決方案,我會在這裏發佈。目前,我監聽一個製表符切換事件,獲取DOM中的所有畫布,將大小+調整大小調整爲0並返回。在一些測試中,我們也抓取像素,調整大小然後繪製內容 這意味着每個繪畫循環必須重新獲取上下文,並重新應用任何變換。 這對我來說並不理想,因爲我現在想用一個'修復'修補大約100場比賽。艱難時期 :) –