در صفحات قبلي در مورد ويژگي ومتدهاي شئ بوم(<canvas>) كاملا مطالبي جامع ارائه گرديد .اين آخرين صفحه ايست كه درارتباط ميباشد .دراين صفحه چند متد بعنوان ساير متدهاي بوم ارائه مي شود .بخشهاي تشريحي هركدام از آنها در جدول زير مشخص شده است.
متد | شرح |
---|---|
clip() | ناحيه اي به هر شكل واندازه را ازبوم اصلي جدا ميكند. |
save() | وضعيت شئcontext فعلي وتمام ويژگي هاي آن راذخيزه ميكند. |
restore() | ذخيره شده قبلي رابازيابي ميكند. |
createEvent() | يك شئ رويدادي ايجاد ميكند. |
getContext() | شئ دو بعدي براي ترسيم در بوم ايجاد ميكند |
toDateURL() |
متدclip يك ناحيه با هراندازه اي را از شئcontext انتخاب(clip) ميكند.
توجه ـ هنگاميكه يك ناحيه انتخاب ويا بريده ميشود، ترسيم آينده به ناحيه بريده شده محدود ميگردد.
بااين حال ، ميتوانيد تنظيمات شئcontext مربوطه را با متد save() قبل از استفاده متدclip() ذخيره كنيد و از متد restore() براي بازيابي آن بعدا استفاده كنيد.
مثال ـ ناحيه200*120 از شئ context مربوطه انتخاب ميشود .سپس مستطيل قرمز ترسيم ميگردد .فقط قسمتي از مستطيل قرمز كه داخل ناحيه بريده شده است، قابل مشاهده است.
Without clip(): -
With clip(): -
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); // Clip a rectangular area ctx.rect(50, 20, 200, 120); ctx.stroke(); ctx.clip(); // Draw red rectangle after clip() ctx.fillStyle = "red"; ctx.fillRect(0, 0, 150, 100); </script >
متد فوق بدون مقدار برگشتي
متدsave() وضعيت شئcontext را با تمام ويژگي هاي آن ذخيره ميكند. وضعيت و ويژگي ها مطابق زيرند:
مثال ـ وضعيت و ويژگي هاي شئcontext را ذخيره ميكند .
// Draw ctx.fillStyle = "green"; ctx.fillRect(10, 10, 50, 50); // Save the state ctx.save(); // Draw new ctx.fillStyle = "red"; ctx.fillRect(100, 10, 50, 50); // Restore saved state ctx.restore(); // Draw new ctx.fillRect(200, 10, 50, 50);
اين متد بدون پارامتر وبده مقدار برگشتي است.
متدrestore() وضعيت ذخيره شده يك شئ context را بازيابي ميكند .پارامترهاي بازيابي شده همانهائي هستند، كه در متدsave() مطرح شد .
مثال ـ وضعيت وويژگي هاي ذخيره شئcontext بازيابي ميشود .
// Draw ctx.fillStyle = "green"; ctx.fillRect(10, 10, 50, 50); // Save the state ctx.save(); // Draw new ctx.fillStyle = "red"; ctx.fillRect(100, 10, 50, 50); // Restore saved state ctx.restore(); // Draw new ctx.fillRect(200, 10, 50, 50);
اين متد بدون پارامتر وبده مقدار برگشتي است.
متدcreateEvent() يك شئ رويدادي (event object) ايجاد ميكند . رويداد بايد ازنوع قابل قبول ويا قانوني باشد وقبل از استفاده بايد مقدار دهي اوليه (Dipatch)شود .
مثال ـ شبيه سازي يك رويداد ماوس(mouseover event)
const ev = document.createEvent("MouseEvent");
ev.initMouseEvent("mouseover", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
document.getElementById("myDiv").dispatchEvent(ev);
پارامتر | شرح |
---|---|
type | نوع رويداد كه ضروريست
AnimationEvent ClipboardEvent DragEvent FocusEvent HashChangeEvent InputEvent KeyboardEvent MouseEvent PageTransitionEvent PopStateEvent ProgressEvent StorageEvent TouchEvent TransitionEvent UiEvent WheelEvent |
مقدار برگشتي متد فوق يك شئ رويدادي(Event object) است.
متدgetContext() در فضاي بوم يك شئ دوبعدي براي ترسيم ايجاد ميكند . اين شئ داراي ويژگي ومتدهاي مختلفي براي ترسيم دارد، كه دراين بخشهاي مربوطCanvs object در مورد آن بحث شده است .براي كسب اطلاعات بيشتر به صفحات مرتبط آن مراجعه كنيد .در تمام مثال هاي آنها ازاين متد استفاده شده است.