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]/

Reply via email to