캔버스란
Mozilla에는 캔버스에 대한 튜토리얼이 많지만, 저는 학습 과정을 기록하기로 했습니다. 내가 작성한 내용이 충분히 명확하지 않다고 생각되면 참고 자료에서 Mozilla 웹사이트의 Canvas 튜토리얼 링크를 찾을 수 있습니다.
또한 여기에서 몇 가지 흥미로운 캔버스 예제를 찾을 수 있습니다.
캔버스 시작하기
캔버스를 사용하는 것은 매우 간단합니다. 다른 HTML 요소를 사용하는 것과 마찬가지로 페이지에
Firefox 3.0.x 的尴尬
Firefox 3.0.x 虽然支持了 canvas 元素,但是并没有完全按照规范来实现,规范中的 fillText、measureText 两个方法在 Firefox 3.0.x 中被几个 Firefox 特有的方法代替,因此在 Firefox 3.0.x 中使用 Canvas 时需要先 fix 这个几个方法在不同浏览器中的差别。
下面这代码取自 Mozilla Bespin 项目,它修正了 Firefox 3.0.x 中 Canvas 的 Context 对象与 HTML5 规范不一致的地方:
注意:到 Opera 9.5 为止,Opera 还不支持 HTML5 规范中 Canvas 对象的 fillText 以及其相关方法和属性。
Hello, Canvas!
在对 Canvas 进行了一些初步了解后,开始来写我们的第一个 Canvas 程序,闻名的 HelloWorld 的又一个分支“Hello, Canvas”:
예제를 실행하면 Canvas 개체가 있는 영역에 "Hello, World!"가 표시됩니다. 이것이 바로 코드에서 ctx.fillText("Hello, World!", 20, 20)가 수행하는 작업입니다.
fillText 및 관련 속성
fillText 메소드는 Canvas에 텍스트를 표시하는 데 사용됩니다. 이 메소드는 4개의 매개변수를 사용할 수 있으며 그 중 마지막 매개변수는 선택사항입니다.
void fillText(DOMString 텍스트, float x, float y, [선택 사항] float maxWidth);
여기서 maxWidth는 텍스트를 표시할 때 최대 너비를 나타내며, 이는 텍스트 오버플로를 방지할 수 있습니다. 그러나 테스트에서 Firefox 및 Chomre에서 maxWidth를 지정해도 아무런 효과가 없는 것으로 나타났습니다.
fillText 메소드를 사용하기 전에 Context의 글꼴 속성을 설정하여 표시되는 텍스트의 글꼴을 조정할 수 있습니다. 위의 예에서는 표시되는 텍스트의 글꼴로 "20pt Arial"을 다르게 설정할 수 있습니다. 구체적인 효과를 직접 살펴보세요.
종료
그럼 일단 사양을 읽어보며 이 시리즈를 작성하겠습니다 :)
참고자료