item one item two item three item four flist.setAttribute('visible', !flist.visible); genwaypoint(); xanim.cycle=true; yanim.cycle=true; xanim.doStart(); yanim.doStart(); xanim.cycle=false; yanim.cycle=false; xanim.stop(); yanim.stop(); var randomx = Math.random(); var randomy = Math.random(); this.setAttribute( 'nextX' , Math.round(Math.abs(canvas.width*randomx)) ); this.setAttribute( 'nextY' , Math.round(Math.abs(canvas.height*randomy)) ); classroot.genwaypoint(); if (cycle) { this.doStart(); } if (cycle) { this.doStart(); } updateAttachLocation(); if (!visible) setAttribute('visible', true); updateAttachLocation(); Click on a button to show a floatinglist of the same style. The labels indicate the floatinglist's attach location. Notice that the floatinglists are aware of the canvas bounds and always appear in a visible location. animate if (this.isinited) { if (value==true) { canvas.content.b1.startAnimate(); canvas.content.b2.startAnimate(); canvas.content.b3.startAnimate(); canvas.content.b4.startAnimate(); canvas.content.b5.startAnimate(); canvas.content.b6.startAnimate(); } else { canvas.content.b1.stopAnimate(); canvas.content.b2.stopAnimate(); canvas.content.b3.stopAnimate(); canvas.content.b4.stopAnimate(); canvas.content.b5.stopAnimate(); canvas.content.b6.stopAnimate(); } }