Hello everyone!
I've begun work on redesigning my own homepage and
using DynAPI explict. Currently I've rewritten my old
layerpositioning extension and begun coding a widget
for my main sitenavigational system called Eyes.
Of course I run into some bugs along the way (as
expected), but now I find myself stuck witout errors
but nothing happening - at least in the MacOS X
enviroment I'm currently bound to.
Here's my widget code:
hvaglin.custom.eyes.js
----------------------
/*
Henrik V�glin's Custom Widgets & Extensions
Eye Class
This add-on set as well as the DynAPI Distribution
is distributed under the terms of the GNU LGPL
license.
Requirements:
dynapi.api.*
dynapi.util [thread, pathanim]
dynapi.gui [button, label, dynimage]
*/
function
Eye(sectionname,colorset,imgopen,imgclosed,imgover,state)
{
this.DynImage = DynImage;
this.DynImage(imgopen);
this.sectionname = sectionname || 'unknown';
this.colorset = colorset || 'white';
this.imgopen = imgopen || null;
this.imgclosed = imgclosed || null;
this.imgover = imgover || null;
this.state = state || 'open';
this.prestate = 'closed';
var eyeListener = new EventListener(this);
eyeListener.onmouseover = function(e) {
var o = e.getTarget();
if (o.state!='active') { o.setImage(o.imgover);
o.state='active'; };
};
eyeListener.onmouseout = function(e) {
var o = e.getTarget();
if (o.state!=o.prestate) {
if (o.prestate=='closed') {
o.setImage(o.imgclosed); o.state='closed'; };
if (o.prestate=='open') { o.setImage(o.imgopen);
o.state='open'; };
};
};
eyeListener.onmouseclick = function(e) {
var o = e.getTarget();
// if (state!='active') { o.setImage(o.imgover);
o.state='active'; };
};
this.addEventListener(eyeListener);
}
Eye.prototype = new DynImage;
-----
You'll find that one and others to download directly
in my open serverfolders @
http://www.geocities.com/hvaglin/scripts/dynapi/src/lib/
-----
I haven't really added any methods yet but wouldn't
that code be enough to create the eye widgets?
Here's the initcode I'm using
script language="JavaScript"
src="scripts/dynapi/src/dynapi.js"
type="text/JavaScript"></script>
script language="JavaScript" type="text/JavaScript">
//====== DYNAPI LIBRARY ===//
DynAPI.setLibraryPath('scripts/dynapi/src/lib/');
//***** Official distribution ***/
DynAPI.include('dynapi.api.*');
DynAPI.include('dynapi.event.*');
DynAPI.include('dynapi.gui.dynimage.js');
DynAPI.include('dynapi.util.thread.js');
DynAPI.include('dynapi.util.pathanim.js');
DynAPI.include('dynapi.ext.inline.js');
DynAPI.include('dynapi.util.debug');
//**** dyntoolbox add-ons and widgets ***/
//**** my own add-ons and widgets ***/
DynAPI.include('hvaglin.ext.layerpos.js');
DynAPI.include('hvaglin.custom.eyes.js');
//====== GLOBALS ======//
var sections = new
Array('Personals','Reviews','Comics','Art','Cooking','Webdesign');
// Main sections of the site
var colors = new
Array('yellow','green','blue','purple','red','orange');
// Colors to associate with each main section
var eyes = new Array(); // In here goes l8r the
dynimage eye layers that represents the main sections
in the on-site navigation
//***** Pathanimation ***/
/* Paths divided into Y and X positions f�r
readability.
Numbers are pixels from the left and top of the
pallette layer. */
var pathY = new
Array(308,295,282,272,252,234,206,186,176,148,130,112,94,76,62,54,46,43,40,36,32);
// The path's Y positions
var pathX = new
Array(113,103,93,81,71,65,59,57,55,58,61,71,81,91,101,114,127,140,155,168,181);
// The path's X positions
/* Starting positions as of order in the pathY &
pathX:
orangeeyeStart = 0; redeyeStart = 4;
purpleeyeStart = 8; blueeyeStart = 12; greeneyeStart =
16; yelloweyeStart = 20; */
//====== DYNAPI FUNCTIONS ===//
//********* Document load ***/
DynAPI.onLoad = function() {
//***** Creating the eyes ***/
var j=0; // just to keep track of which ordered Y and
X to get from the path array's
k=colors.lenght-1;
for (i=k;i>=0;i--) { // looping backwards to get the
correct order of the eyes
eye0 =
eval("DynImage.getImage('eyes/"+colors[i]+"eye0.gif'");
// closed eye
eye1 =
eval("DynImage.getImage('eyes/"+colors[i]+"eye1.gif'");
// open eye
eyeblink =
eval("DynImage.getImage('eyes/"+colors[i]+"eyeblink.gif'");
// active eye, ie mouseover, loading section etc
eyes[i] = new
Eye(sections[i],colors[i],eye1,eye0,eyeblink,null); //
creating a new Eye
eyes[i].moveTo(pathY[j],pathX[j]); // putting the new
eye in position according to the upper-left corner of
the palettet layer
DynAPI.document.addChild(eyes[i]); // attaching the
eye to the document and not bound up to the pallete
layer
j=j+4; // jumping to the next position numbers in
path's order
}
[...more code that does other stuff cut out... ]
}
/script>
(* script tag was delibratry malformed for this email
so nobody gets in trouble with their emailprogram *)
You can watch it at work - or not at work :( - @
http://www.geocities.com/hvaglin//index2.html
Hope some kind soul will take the time to look at it
and report what happens back to me :-/
_____________________________________________________
Gratis e-mail resten av livet p� www.yahoo.se/mail
Busenkelt!
-------------------------------------------------------
This sf.net email is sponsored by: viaVerio will pay you up to
$1,000 for every account that you consolidate with us.
http://ad.doubleclick.net/clk;4749864;7604308;v?
http://www.viaverio.com/consolidator/osdn.cfm
_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://www.mail-archive.com/[email protected]/