topical media & game development
graphic-canvas-util-pixastic-pixastic-core.js / js
/*
* Pixastic Lib - Core Functions - v0.1.2
* Copyright (c) 2008 Jacob Seidelin, cupboy@gmail.com, http://blog.nihilogic.dk/
* MIT License [http://www.opensource.org/licenses/mit-license.php]
*/
var Pixastic = (function() {
function addEvent(el, event, handler) {
if (el.addEventListener)
el.addEventListener(event, handler, false);
else if (el.attachEvent)
el.attachEvent("on" + event, handler);
}
function onready(handler) {
var handlerDone = false;
var execHandler = function() {
if (!handlerDone) {
handlerDone = true;
handler();
}
}
document.write("<"+"script defer src=\"//:\" id=\"__onload_ie_sumbox__\"></"+"script>");
var script = document.getElementById("__onload_ie_sumbox__");
script.onreadystatechange = function() {
if (script.readyState == "complete") {
script.parentNode.removeChild(script);
execHandler();
}
}
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", execHandler, false);
addEvent(window, "load", execHandler);
}
function init() {
if (!Pixastic.parseOnLoad) return;
var imgEls = getElementsByClass("pixastic", null, "img");
var canvasEls = getElementsByClass("pixastic", null, "canvas");
var elements = imgEls.concat(canvasEls);
for (var i=0;i<elements.length;i++) {
(function() {
var el = elements[i];
var actions = [];
var classes = el.className.split(" ");
for (var c=0;c<classes.length;c++) {
var cls = classes[c];
if (cls.substring(0,9) == "pixastic-") {
var actionName = cls.substring(9);
if (actionName != "")
actions.push(actionName);
}
}
if (actions.length) {
if (el.tagName.toLowerCase() == "img") {
var dataImg = new Image();
dataImg.src = el.src;
if (dataImg.complete) {
for (var a=0;a<actions.length;a++) {
var res = Pixastic.applyAction(el, el, actions[a], null);
if (res)
el = res;
}
} else {
dataImg.onload = function() {
for (var a=0;a<actions.length;a++) {
var res = Pixastic.applyAction(el, el, actions[a], null)
if (res)
el = res;
}
}
}
} else {
setTimeout(function() {
for (var a=0;a<actions.length;a++) {
var res = Pixastic.applyAction(
el, el, actions[a], null
);
if (res)
el = res;
}
},1);
}
}
})();
}
}
onready(init);
// getElementsByClass by Dustin Diaz, http://www.dustindiaz.com/getelementsbyclass/
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.