compuboy1010
07-21-2005, 02:27 PM
Hi folks. How can this be? When I click on the country movie clip(i.e "at", the partners of the the country that I clickd previously are displayed in the tPartners textfield. So the display is always on click late.
Maybe it is a stupid question but does the script wait until the function call "loadPartners(sCountry);" in the display() Function wait until that call is completed? Or does it continue? That would explain why i used the previous data.
stop();
_root.mc_breadcrumb.path.text = "Kontakt > Händler";
_root.mc_breadcrumb.maincat.text = "Kontakt";
var aPartners:Array = new Array();
var xmlPartners:XML;
var sCountry:String;
var aCountries:Array = new Array();
aCountries["at"] = "Österreich";
aCountries["nl"] = "Niederlande";
function display(sCountry:String):Void {
loadPartners(sCountry);
this.tCountry.htmlText = aCountries[sCountry];
this.tPartners.htmlText = "";
var sOutput:String = '';
for (var i = 0; i<aPartners.length; i++) {
if (aPartners[i]["url"] == '--') {
sOutput += "<b>Name:</b><br><p>"+aPartners[i]["name"]+"</p>";
} else {
sOutput += "<b>Name:</b><br><p>"+"<a href=""+aPartners[i]["url"]+"">"+aPartners[i]["name"]+"</a></p>";
}
sOutput += "<b>Adresse:</b><br><p>"+aPartners[i]["address"]+"</p>";
sOutput += "<b>Tel:</b><br><p>"+aPartners[i]["tel"]+"</p>";
sOutput += "<b>Fax:</b><br><p>"+aPartners[i]["fax"]+"</p>";
sOutput += "<b>Email:</b><br><p>"+aPartners[i]["email"]+"</p><br><br>";
}
this.tPartners.htmlText = sOutput;
}
function loadPartners(sCountry:String):Void {
xmlPartners = new XML();
xmlPartners.ignoreWhite = true;
xmlPartners.onLoad = function(bSuccess:Boolean) {
if (bSuccess) {
var xnPartners:XMLNode = xmlPartners.firstChild;
var xnPartner:XMLNode;
var xnName:XMLNode;
var xnUrl:XMLNode;
var xnAddress:XMLNode;
var xnTel:XMLNode;
var xnFax:XMLNode;
var xnEmail:XMLNode;
for (var i = 0; i<xnPartners.childNodes.length; i++) {
aPartners[i] = new Array();
xnPartner = xnPartners.childNodes[i];
xnName = xnPartner.firstChild;
aPartners[i]["name"] = xnName.firstChild.nodeValue;
aPartners[i]["country"] = xnName.attributes.country;
xnUrl = xnName.nextSibling;
aPartners[i]["url"] = xnUrl.firstChild.nodeValue;
xnAddress = xnUrl.nextSibling;
aPartners[i]["address"] = xnAddress.firstChild.nodeValue;
xnTel = xnAddress.nextSibling;
aPartners[i]["tel"] = xnTel.firstChild.nodeValue;
xnFax = xnTel.nextSibling;
aPartners[i]["fax"] = xnFax.firstChild.nodeValue;
xnEmail = xnFax.nextSibling;
aPartners[i]["email"] = xnEmail.firstChild.nodeValue;
}
} else {
this.tPartners.htmlText = "Da gibt es ein Problem.";
}
// end of else
};
//end .onload
xmlPartners.load("de/kontakt/php/partners.php?country="+sCountry);
}
// end of function
this.mcSubmenuVendors.mcPartners.mcSubItemAt.onPre ss = function() {
// Östereich
display("at");
};
this.mcSubmenuVendors.mcPartners.mcSubItemNl.onPre ss = function() {
// Niederlande
display("nl");
};
};
Maybe it is a stupid question but does the script wait until the function call "loadPartners(sCountry);" in the display() Function wait until that call is completed? Or does it continue? That would explain why i used the previous data.
stop();
_root.mc_breadcrumb.path.text = "Kontakt > Händler";
_root.mc_breadcrumb.maincat.text = "Kontakt";
var aPartners:Array = new Array();
var xmlPartners:XML;
var sCountry:String;
var aCountries:Array = new Array();
aCountries["at"] = "Österreich";
aCountries["nl"] = "Niederlande";
function display(sCountry:String):Void {
loadPartners(sCountry);
this.tCountry.htmlText = aCountries[sCountry];
this.tPartners.htmlText = "";
var sOutput:String = '';
for (var i = 0; i<aPartners.length; i++) {
if (aPartners[i]["url"] == '--') {
sOutput += "<b>Name:</b><br><p>"+aPartners[i]["name"]+"</p>";
} else {
sOutput += "<b>Name:</b><br><p>"+"<a href=""+aPartners[i]["url"]+"">"+aPartners[i]["name"]+"</a></p>";
}
sOutput += "<b>Adresse:</b><br><p>"+aPartners[i]["address"]+"</p>";
sOutput += "<b>Tel:</b><br><p>"+aPartners[i]["tel"]+"</p>";
sOutput += "<b>Fax:</b><br><p>"+aPartners[i]["fax"]+"</p>";
sOutput += "<b>Email:</b><br><p>"+aPartners[i]["email"]+"</p><br><br>";
}
this.tPartners.htmlText = sOutput;
}
function loadPartners(sCountry:String):Void {
xmlPartners = new XML();
xmlPartners.ignoreWhite = true;
xmlPartners.onLoad = function(bSuccess:Boolean) {
if (bSuccess) {
var xnPartners:XMLNode = xmlPartners.firstChild;
var xnPartner:XMLNode;
var xnName:XMLNode;
var xnUrl:XMLNode;
var xnAddress:XMLNode;
var xnTel:XMLNode;
var xnFax:XMLNode;
var xnEmail:XMLNode;
for (var i = 0; i<xnPartners.childNodes.length; i++) {
aPartners[i] = new Array();
xnPartner = xnPartners.childNodes[i];
xnName = xnPartner.firstChild;
aPartners[i]["name"] = xnName.firstChild.nodeValue;
aPartners[i]["country"] = xnName.attributes.country;
xnUrl = xnName.nextSibling;
aPartners[i]["url"] = xnUrl.firstChild.nodeValue;
xnAddress = xnUrl.nextSibling;
aPartners[i]["address"] = xnAddress.firstChild.nodeValue;
xnTel = xnAddress.nextSibling;
aPartners[i]["tel"] = xnTel.firstChild.nodeValue;
xnFax = xnTel.nextSibling;
aPartners[i]["fax"] = xnFax.firstChild.nodeValue;
xnEmail = xnFax.nextSibling;
aPartners[i]["email"] = xnEmail.firstChild.nodeValue;
}
} else {
this.tPartners.htmlText = "Da gibt es ein Problem.";
}
// end of else
};
//end .onload
xmlPartners.load("de/kontakt/php/partners.php?country="+sCountry);
}
// end of function
this.mcSubmenuVendors.mcPartners.mcSubItemAt.onPre ss = function() {
// Östereich
display("at");
};
this.mcSubmenuVendors.mcPartners.mcSubItemNl.onPre ss = function() {
// Niederlande
display("nl");
};
};