Newsgroup: it.comp.lang.javascript
Titolo: vi dannerete a capire il perché...

http://www.cybernet.ch/users/massimo/demos/mousetrail/mousetrail.htm
In questa pagina c'é un esempio carino di come usare i layers...
Io non capisco proprio perché inserendo un roll-over, il tutto non
funzioni più!!!
Cosa devo fare???
Un caro saluto,
MiGhi

...


Massimo Foti wrote:

... ma che piacere trovare la risposta dallo stesso autore!!!
Dunque, Massimo, l'effetto è bellissimo, ma ho dei problemi
nell'utilizzarlo in pagine con tabelle e rolls over. Io all'inizio mi
sono rifatto al codice della pagina (senza risultati), poi mi sono
scaricato il 'COMMAND' ma ciò non ha srtito nessun effetto...
Ecco un semplice roll-over che smorza il "mousetrail" :(
///inizio
<HTML>
<HEAD>
<TITLE>Untitled</TITLE>
<script>
<!--
//tmtC_Mousetrail
var isNS = (navigator.appName == "Netscape");
layerRef = (isNS) ? "document" : "document.all";
styleRef = (isNS) ? "" : ".style";
var queue = new Array();
var NUM_OF_TRAIL_PARTS = 5
for (x=1; x < 6; x++) {
eval("trailSpriteFrame" + x + " = new Image(20,20);");
eval("trailSpriteFrame" + x + ".src = '0" + x + ".gif';");}
function trailSpriteObj(anID) {
this.trailSpriteID = "trailSprite" + anID;
this.imgRef = "trailSprite" + anID + "img";
this.currentFrame = 1;
this.animateTrailSprite = animateTrailSprite;}
function animateTrailSprite() {
if (this.currentFrame <6 ) {
if (isNS) {
eval("document." + this.trailSpriteID +".document['"+ this.imgRef +
"'].src  =  trailSpriteFrame" + this.currentFrame + ".src");
} else {
eval("document['" + this.imgRef + "'].src  =  trailSpriteFrame" +
this.currentFrame + ".src");}
this.currentFrame ++;
} else {
eval(layerRef + '.' + this.trailSpriteID +  styleRef + '.visibility =
"hidden"');}}
function processAnim() {
for(x=0; x < NUM_OF_TRAIL_PARTS; x++)
queue[x].animateTrailSprite();}
function processMouse(e) {
currentObj = shuffleQueue();
if (isNS) {
eval("document." + currentObj + ".left = e.pageX - 10 ;");
eval("document." + currentObj + ".top = e.pageY + 10;");
} else {
eval("document.all." + currentObj + ".style.pixelLeft = event.clientX +
document.body.scrollLeft - 10 ;");
eval("document.all." + currentObj + ".style.pixelTop = event.clientY +
document.body.scrollTop + 10;");}}
function shuffleQueue() {
lastItemPos = queue.length - 1;
lastItem = queue[lastItemPos];
for (i = lastItemPos; i>0; i--)
queue[i] = queue[i-1];
queue[0] = lastItem;
queue[0].currentFrame = 1;
eval(layerRef + '.' + queue[0].trailSpriteID +  styleRef + '.visibility
= "visible"');
return  queue[0].trailSpriteID;}
function init() {
for(x=0; x<NUM_OF_TRAIL_PARTS; x++)
queue[x] = new trailSpriteObj(x+1) ;
if (isNS) { document.captureEvents(Event.MOUSEMOVE); }
document.onmousemove = processMouse;
setInterval("processAnim();",25);}
window.onload = init;
function MM_swapImgRestore() { //v2.0
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}
function MM_preloadImages() { //v2.0
  if (document.images) {
    var imgFiles = MM_preloadImages.arguments;
    if (document.preloadArray==null) document.preloadArray = new
Array();
    var i = document.preloadArray.length;
    with (document) for (var j=0; j<imgFiles.length; j++) if
(imgFiles[j].charAt(0)!="#"){
      preloadArray[i] = new Image;
      preloadArray[i++].src = imgFiles[j];
  } }
}
function MM_swapImage() { //v2.0
  var i,j=0,objStr,obj,swapArray=new
Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
    objStr = MM_swapImage.arguments[(navigator.appName ==
'Netscape')?i:i+1];
    if ((objStr.indexOf('document.layers[')==0 && document.layers==null)
||
        (objStr.indexOf('document.all[')   ==0 && document.all
==null))
      objStr =
'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null ||
oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = MM_swapImage.arguments[i+2];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}
//-->
</script>
</HEAD>
<BODY bgcolor="#000000"
onLoad="MM_preloadImages('menu_r02_c06_F2.gif','#942683963916')">
<!--tmtC_Mousetrail-->
<DIV id="trailSprite1" style="position: absolute; height:20px;
width:20px;z-index: 100">
  <img src="blank.gif" height=20 width=20 border=0
name="trailSprite1img"> </DIV>
<DIV id="trailSprite2" style="position: absolute; height:20px;
width:20px;z-index: 10">
  <img src="blank.gif" height=20 width=20 border=0
name="trailSprite2img"> </DIV>
<DIV id="trailSprite3" style="position: absolute; height:20px;
width:20px;z-index: 10">
  <img src="blank.gif" height=20 width=20 border=0
name="trailSprite3img"> </DIV>
<DIV id="trailSprite4" style="position: absolute; height:20px;
width:20px;z-index: 10">
  <img src="blank.gif" height=20 width=20 border=0
name="trailSprite4img"> </DIV>
<DIV id="trailSprite5" style="position: absolute; height:20px;
width:20px;z-index: 10">
  <img src="blank.gif" height=20 width=20 border=0
name="trailSprite5img"> </DIV>
<!--End tmtC_Mousetrail--> <a href="#" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('document.Image6','document.Image6','menu_r02_c06_F2.gif','#942683963916')"><img
name="Image6" border="0" src="menu_r02_c06.gif" width="48"
height="48"></a>
</BODY>
</HTML>
/////fine
Ti ringrazio molto,
MiGhi

scaricato il 'COMMAND' ma ciò non ha srtito nessun effetto...
Ci tengo a precisare che non sono l'autore dello script ma solo del command
per Dreamweaver.
Purtroppo non sono riuscito a risalire al nome del'autore, lo script mi fu
inviato da una terza persona...
Venendo al tuo problema, rimuovi la routine di preload dall'evento "onLoad"
del <body> e tutto tornerá a funzionare.
Se propio devi precaricare delle immagini, usa un altro sistema...
Ciao


 But I am not the coder I use to be...
Sei disponibilissimo come ricordavo.
Grazie,
MiGhi
Complimenti per il lavoro che fai riguardo Dreamweaver. Forza Massimo!!!