MooCanvas або малюємо через JavaScript

MooTools Canvas (або коротко MooCanvas) — клас, розроблений Olmo Maldonado на основі MooTools версії 1.12, для додавання підтримки канви (полотна) в Internet Explorer’і. Завдячуючи використанню MooTools, клас вийшов модульним та має відносно невеликий розмір. Дане програмне забезпечення поширюється під MIT License.

MooCanvas або малюємо через JavaScript

MooTools Canvas не виник з пустого місця. Він є «побічний» (якщо так можна виразитись) продукт ExCanvas від Google та скрипту від Ralph Sommerer (Коротка довідка: Ralph Sommerer був першою особою, яка почала працювати над ідеєю використання VML для емуляції тегу <canvas>). Саме емуляцією теґу <canvas> для ІЕ за допомогою створення VML елемента на льоту і займається MooTools Canvas.

Завантажити MooTools Canvas, а також подивитися на нього в дії, можна на сторінці проекту: http://ibolmo.com/projects/moocanvas/.

Повна версія MooTools Canvas, яка включає розширені коментарі до коду, тобто файл «moocanvas.js» займає 29,7 Кб, а стиснута без коментарів  — 7,12 Кб.

Навіщо вам MooTools Canvas?

Для початку давайте вияснимо навіщо потрібен MooTools Canvas.

При створенні сучасних веб-сайтів інколи виникає потреба у використанні теґа <canvas> для малювання в браузері графіків, фото композицій, для створення простенької (і не дуже простенької) анімації, програмним способом (зазвичай реалізовано на JavaScript).

Цей теґ вперше ввела компанія Apple для панелі керування в ОС Mac X, а пізніше в своєму браузері Safari. Зараз браузери на Gecko-основі такі, як Firefox 1.5, Opera (в якості експерименту) також підтримують цей новий елемент.

Тому <canvas> поступово входить в ужиток веб-розробників, як інструмент, який дозволяє створювати 2D графіку за допомогою JavaScript. Єдине, що стримує його поширення, це відсутність підтримки з боку Internet Explorer. Саме для вирішенню цієї проблеми і потрібен клас MooTools Canvas.

Синтаксис

Синтаксис:

var myCanvas = new Canvas([el,][ props]);

Аргументи:

  • el - (об’єкт, необов’язковий) Елемент, який розширюється, якщо необхідно.
  • props - (об’єкт, необов’язковий) Властивості елемента.

Повертає (результат): новий елемент полотна, розширений getContext, якщо є така потреба.

Приклад:

var myCanvas = new Canvas();
var ctx = myCanvas.getContext('2d');
$(document.body).adopt(myCanvas);

Використання MooTools Canvas

Попри певну схожість MooCanvas та ExCanvas, між ними є одна суттєва різниця, яку варто пояснити. Відмінність полягає в тому, що Excanvas автоматично пробуватиме розширити всі теґи <canvas>, що є на сторінці, за допомогою getContext методу. Тоді ж як в MooCanvas підхід інший — вам необхідно після підключення бібліотеки створити екземпляр класу Canvas і вставити його у потрібному місці в DOM. Це можна зробити наприклад, ось, так (звичайно до цього фрагменту коду вже мають бути підключені MooTools та MooCanvas):

window.onload = function() {

	var myCanvas = new Canvas({
		// унікальний ідентифікатор полотна
		id: 'myCanvasId',
		width: 300, // ширина полотна
		height: 250 // висота полотна
	});

	// тепер ви маєте вибрати, що хочете робити з цим елементом,
	// наприклад, вставляємо його в тіло документу:
	myCanvas.inject(document.body);

}

Компоненти MooTools Canvas

При завантаженні MooTools Canvas ви можете обрати, компоненти, які вам потрібні для подальшої роботи:

  • Canvas — додає елемент канви з getContext, якщо браузер є IE;
  • Paths
  • Rectangles — створення прямокутних форм;
  • Transforms
  • Image — додає можливість розміщувати зображення на полотні;
  • State
  • Gradient — додає мінімальну підтримку градієнтів;
  • Pattern — додає мінімальну підтримки шаблонів (зразків).

Проблеми

Навіть після ретельних випробувань все ще є деякі проблеми, які не були вирішені. Не те, що їх не можна вирішити, просто, як часто буває, в розробника бракує часу або ж не має можливості дослідити всі можливі випадки. Тому вразі, якщо ви виявили помилки, надсилайте їх розробнику.

Післяслово

Дана стаття не претендує на повноту викладу, її можна розглядати лише як вступ у вивчення MooTools Canvas.

Джерела:

Категорія: Графіка. Теґи: , , , , , , , , . Ви можете слідкувати за коментуванням цієї статті за допомогою RSS 2.0. Ви можете залишити коментар, або надіслати трекбек з вашого сайту.

Залишити коментар

XHTML: Ви можете використовувати ці теґи: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>