我想知道是否應該在我的HTML5 canvas遊戲中實現CSS3轉換或畫布轉換(旋轉,傾斜,縮放......現在主要是2D)。
我打算將它用於android上的chrome。
我找不到任何明確的答案。
各自的性能收益和總體利弊分別是什麼?Canvas vs CSS Transformations
0
A
回答
3
這取決於目的。
如果使用CSS3轉換,它將僅影響畫布元素而不是其內容(位圖),而使用畫布自己的轉換會影響內容。
另一個區別是,CSS3轉換會影響畫布及其當前位圖總而言之,沒有區別。使用畫布上下文的局部變換,可以更改每個畫圖之間的變換矩陣,以影響不同形狀的不同方式。
如果您不需要對畫布中的不同形狀進行單獨轉換,並且無需提取分析/操作轉換內容的像素,那麼CSS3可能是更好的選擇。
我相信瀏覽器共享相同的轉換過程(在覈心),所以性能本身沒有什麼不同(理論上)。使用canvas的本地轉換仍然存在性能問題,但是由於JavaScript本身,而CSS3轉換在本地編譯代碼內部調用。
與爲每個所需轉換設置CSS規則相比,Canvas可以爲您提供更好,更簡單的細節控制。
使用畫布轉換的一個缺點是讀取例如相對於元素而不是轉換位圖的鼠標位置。這意味着您需要使用逆矩陣來彌補這一點。你可以通過使用絕對變換而不是累積的變換來解決這個問題,你可以爲每個幀更新設置和重置。
我的推薦:對於遊戲使用畫布通常更好。您可以使用CSS製作更簡單的遊戲,但我會爲這些東西推薦畫布。
(免責聲明:我認爲在我的答案中,你是一個畫布的意義內容,而不是一般意義上的)。
相關問題
- 1. Linq to NHibernate + transformations + futures
- 2. Canvas arc()vs drawImage()
- 3. Javafx canvas vs pane
- 4. Canvas vs HTML DOM?
- 5. Canvas vs. Panel
- 6. Canvas context.fillText()vs context.strokeText()
- 7. Img map vs canvas
- 8. SVG/VML vs Canvas vs HTML - Mobile
- 9. HTML Canvas Interval vs RequestAnimationFrame
- 10. Canvas tag - drawarc vs image
- 11. Canvas vs SVG簡單遊戲
- 12. Gd庫vs Html canvas元素
- 13. Canvas vs SVG for graph-like diagrams?
- 14. Animate CC - getChildByName canvas vs WebGL
- 15. Windows Phone 7 - Canvas vs. XNA
- 16. Raphael canvas覆蓋css
- 17. HTML5圖形SVG,canvas和CSS
- 18. RGBa css vs aRGB Android
- 19. html canvas sketch vs填充寬度
- 20. HTML 5 Canvas vs Divs滾動窗格
- 21. WebGL VS Canvas 2D硬件加速
- 22. SVG/Canvas vs Flash for FloorPlanner應用程序
- 23. CSS3 vs Canvas的文字旋轉
- 24. 可下載圖形 - SVG vs Canvas元素?
- 25. 對於大量行,HTML5 SVG vs Canvas?
- 26. Canvas vs標籤上的圖像
- 27. Android動態壁紙 - OpenGL vs Canvas
- 28. canvas vs openGL的功能是什麼?
- 29. Java Swing vs HTML5 Canvas交互式動畫
- 30. 動畫gif vs視頻vs canvas - 速度和文件大小