Hi,
ich habe folgendes Problem.
Heute morgen haben wir
diese Website für einen Kunden released und bei ihm vor Ort
präsentiert.
Unter DSL Bedingungen alles wunderbar, aber unter ISDN „schwappen“ immer die Inhalte des zuletzt angewählten Punktes nach.
Unszwar genau dann, wenn man navigiert ohne vorher auf das fertige Laden & Instanzieren des vorherigen Menüpunktes zu warten.
Ich erkläre mir das so, das ein Klick links auf die Navigation an die query.php die ID sendet und diese dann dem loadVars() die Inhalte zurückliefert und die überlieferte ID wieder in 2 loadVars einsetzt…
Wenn diese Aktion einmal in Gang ist, kann man sie ja logischerweise nicht abbrechen. Klickt man nun zu schnell, verfolgt die erste Query-Einheit die Zweite. Somit werden dann immer kurz die alten Inhalte angezeigt, danach die Neuen. Manchmal bleiben die alten auch einfach stehen oder mischen sich (Elvis Imitator steht aufeinmal in der Liste bei Live-Fitness).
DSL ist so schnell, das man da fast schon gar nicht mehr zu schnell klicken kann, wenn man es nicht unbedingt auf Chaos anlegt.
Nun überlege ich, wie ich das verhindern kann… die Buttons zu sperren, solange die Query-Einheit läuft finde ich irgendwie irritierend… kann man nicht die loadVars sendAndLoad Ergbenisse, sofern noch in Bearbeitung und nicht angeliefert, irgendwie unterwegs killen?
Hier das Script für alle Interessierten:
PHP-Code:
//Actionscript 1
Movieclip.prototype.content_select=function(category,animation,id)
{
_root.content.scrollpane.removeMovieClip();
_root.content.objects.removeMovieClip();
_root.content.container.removeMovieClip();
_root.content.trigger.removeMovieClip();
_root.mailform.removeMovieClip();
_root.preload.gotoAndPlay(1);
_root.category_field.text=category;
_root.animations.gotoAndStop(animation);
var scrollpane=_root.content.attachMovie('FScrollPaneSymbol','scrollpane',1);
scrollpane._x=-325;
scrollpane._y=-188;
scrollpane.width=204;
scrollpane.height=290;
var objects=_root.content.createEmptyMovieClip('objects',2);
var base_x=0;
var base_y=0;
var navigationGroup=new itemOwnerGroup();
var loader=new LoadVars()
loader.object=this;
loader.root_id=id;
loader.sendAndLoad('query.php', loader, 'POST');
loader.onLoad=function()
{
for(var i=0;i<=this.repeats;i++)
{
var element=itemOwnerClass.createSymbol(objects, 'element'+i, i, navigationGroup);
element.client_field.autoSize=true;
element.client=this['client_'+i].split('\r\n').join('\r');
element.id=this['id_'+i];
element.http=this['http_'+i];
element.content=this['content_'+i].split('\r\n').join('\r');
element.headline=this['headline_'+i];
element.onRelease=function()
{
this.group.switchSelection(this);
var container=_root.content.createEmptyMovieClip('container',3);
var transfer=new LoadVars()
transfer.object=this;
transfer.filetype='image';
transfer.root_id=this.id;
transfer.sendAndLoad('query.php', transfer, 'POST');
transfer.onLoad=function()
{
var imagepane=container.attachMovie('FScrollPaneSymbol','imagepane',1);
imagepane._x=-100;
imagepane._y=-152;
imagepane.width=380;
imagepane.height=210;
var image_box=container.createEmptyMovieClip('image_box',2);
for(var j=0;j<this.repeats;j++)
{
var images=image_box.attachMovie('images','images'+j,j);
images.image=eval('this.image_'+j);
images.image_max=eval('this.image_max_'+j);
images.frame.loadMovie(images.image);
images.percent_field.text=0;
images.sign_field.text='%';
images.onEnterFrame=function()
{
var current=this.frame.getBytesLoaded()
var total=this.frame.getBytesTotal()
var percent=Math.round((current/total)*100);
if(percent>0 && percent!=100)
{
this.percent_field.text=percent;
}
if(this.frame.getBytesLoaded()==this.frame.getBytesTotal() && this.frame.getBytesLoaded()>4)
{
this.percent_field.text='';
this.sign_field.text='';
this.frame.drawFrame(0,0,this.frame._width,this.frame._height,3,'0xffffff',100);
if(this.image_max!='')
{
this.onRelease=function()
{
getURL("javascript:popup('"+this.image_max+"');");
}
}
delete this.onEnterFrame;
}
}
images._x=base_x+(j*228);
images._y=base_y;
}
imagepane.setScrollContent(image_box);
imagepane.setVScroll=false;
imagepane.setHScroll=auto;
delete this.object['transfer'];
}
if(this.http!='')
{
var http_comp=container.attachMovie('http','http',3);
http_comp._x=-100;
http_comp._y=83;
http_comp.http=this.http;
}
var pdf=new LoadVars()
pdf.object=this;
pdf.filetype='pdf';
pdf.root_id=this.id;
pdf.sendAndLoad('query.php', pdf, 'POST');
pdf.onLoad=function()
{
if(this.pdf!='')
{
var pdf_comp=container.attachMovie('pdf','pdf',4);
pdf_comp._x=80;
pdf_comp._y=83;
pdf_comp.pdf=this.pdf;
}
delete this.object['pdf'];
}
var infopane=container.attachMovie('FScrollPaneSymbol','infopane',5);
var infotext=container.attachMovie('infotext','infotext',6);
infotext.headline=this.headline;
infotext.infotext_field.autoSize=true;
infotext.infotext=this.content.split('\r\n').join('\r');
infopane._x=-325;
infopane._y=120;
infopane.width=607;
infopane.height=90;
infopane.setScrollContent(infotext);
infopane.setVScroll=auto;
infopane.setHScroll=false;
}
element._x=base_x;
element._y=base_y+(20*i);
}
scrollpane.setScrollContent(objects);
scrollpane.setVScroll=auto;
scrollpane.setHScroll=false;
_root.content.objects.element0.onRelease();
delete this.object['loader'];
}
if(id==9)
{
var trigger=_root.content.attachMovie('trigger','trigger',100);
trigger._x=-100;
trigger._y=43;
}
}
Liebe Grüße
Yves