45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
---
|
|
title: Animation
|
|
localeTitle: الرسوم المتحركة
|
|
---
|
|
## الرسوم المتحركة في قماش
|
|
|
|
لتحريك الأشياء في `canvas` ، استخدم `window.requestAnimationFrame` لإعداد حلقة رسم.
|
|
|
|
`function draw() {
|
|
/* code goes here */
|
|
window.requestAnimationFrame(draw);
|
|
}
|
|
window.requestAnimationFrame(draw);
|
|
`
|
|
|
|
سيؤدي الرمز أدناه إلى تشغيل وظيفة `draw` كل إطار.
|
|
|
|
`canvas` لا يوجد لديه وظائف خاصة تسمح للرسوم المتحركة. عليك فقط أن تستخدم للكتابة في حلقات الرسوم المتحركة. نموذج التصميم المعتاد لحلقات الرسوم المتحركة هو تحديث الحالة ، ثم رسم الحالة. على سبيل المثال ، لرسم مربع يتحرك عبر الشاشة:
|
|
|
|
`canvas = document.getElementById("canvas");
|
|
ctx = canvas.getContext('2d');
|
|
|
|
var x=0;
|
|
var y=50;
|
|
function draw() {
|
|
// reset canvas
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
//update state
|
|
x+=1;
|
|
|
|
// render state
|
|
ctx.beginPath();
|
|
ctx.rect(x, y, 50, 50);
|
|
ctx.fill();
|
|
|
|
window.requestAnimationFrame(draw);
|
|
}
|
|
window.requestAnimationFrame(draw);
|
|
`
|
|
|
|
لرؤية هذا المفهوم في العمل ، راجع صفحة " [الجسيم سيم](/articles/canvas/particle-sim) ".
|
|
|
|
#### معلومات اكثر:
|
|
|
|
* [MDN Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) |