Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2005, 15:18   #1 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
megakomisches Problem

Leute wie kann das sein? Wenn ich auf ein Land klicke(z.B Östtereich,dann wird immer die Partner des Landes angezeigt auf die ich im vorherigen Klick ausgewählt habe. Die Anzeige
hinkt also immer einen hinterher. Blöde Frage, aber wartet der Code bis die XML Datei geladen ist und die Variablen zugewiesen, oder macht der einfach weiter(muss man das vollständige Laden abfragen?)?

ActionScript:
  1. stop();
  2. _root.mc_breadcrumb.path.text = "Kontakt > Händler";
  3. _root.mc_breadcrumb.maincat.text = "Kontakt";
  4. var aPartners:Array = new Array();
  5. var xmlPartners:XML;
  6. var sCountry:String;
  7. var aCountries:Array = new Array();
  8.  
  9. aCountries["at"] = "Österreich";
  10. aCountries["nl"] = "Niederlande";
  11.  
  12.  
  13. function display(sCountry:String):Void {
  14.     loadPartners(sCountry);
  15.     this.tCountry.htmlText = aCountries[sCountry];
  16.     this.tPartners.htmlText = "";
  17.     var sOutput:String = '';
  18.     for (var i = 0; i<aPartners.length; i++) {
  19.         if (aPartners[i]["url"] == '--') {
  20.             sOutput += "<b>Name:</b><br><p>"+aPartners[i]["name"]+"</p>";
  21.         } else {
  22.             sOutput += "<b>Name:</b><br><p>"+"<a href=\""+aPartners[i]["url"]+"\">"+aPartners[i]["name"]+"</a></p>";
  23.         }
  24.         sOutput += "<b>Adresse:</b><br><p>"+aPartners[i]["address"]+"</p>";
  25.         sOutput += "<b>Tel:</b><br><p>"+aPartners[i]["tel"]+"</p>";
  26.         sOutput += "<b>Fax:</b><br><p>"+aPartners[i]["fax"]+"</p>";
  27.         sOutput += "<b>Email:</b><br><p>"+aPartners[i]["email"]+"</p><br><br>";
  28.     }
  29.     this.tPartners.htmlText = sOutput;
  30. }
  31. function loadPartners(sCountry:String):Void {
  32.     xmlPartners = new XML();
  33.     xmlPartners.ignoreWhite = true;
  34.     xmlPartners.onLoad = function(bSuccess:Boolean) {
  35.         if (bSuccess) {
  36.             var xnPartners:XMLNode = xmlPartners.firstChild;
  37.             var xnPartner:XMLNode;
  38.             var xnName:XMLNode;
  39.             var xnUrl:XMLNode;
  40.             var xnAddress:XMLNode;
  41.             var xnTel:XMLNode;
  42.             var xnFax:XMLNode;
  43.             var xnEmail:XMLNode;
  44.             for (var i = 0; i<xnPartners.childNodes.length; i++) {
  45.                 aPartners[i] = new Array();
  46.                 xnPartner = xnPartners.childNodes[i];
  47.                 xnName = xnPartner.firstChild;
  48.                 aPartners[i]["name"] = xnName.firstChild.nodeValue;
  49.                 aPartners[i]["country"] = xnName.attributes.country;
  50.                 xnUrl = xnName.nextSibling;
  51.                 aPartners[i]["url"] = xnUrl.firstChild.nodeValue;
  52.                 xnAddress = xnUrl.nextSibling;
  53.                 aPartners[i]["address"] = xnAddress.firstChild.nodeValue;
  54.                 xnTel = xnAddress.nextSibling;
  55.                 aPartners[i]["tel"] = xnTel.firstChild.nodeValue;
  56.                 xnFax = xnTel.nextSibling;
  57.                 aPartners[i]["fax"] = xnFax.firstChild.nodeValue;
  58.                 xnEmail = xnFax.nextSibling;
  59.                 aPartners[i]["email"] = xnEmail.firstChild.nodeValue;
  60.             }
  61.         } else {
  62.             this.tPartners.htmlText = "Da gibt es ein Problem.";
  63.         }
  64.         // end of else
  65.     };
  66.     //end .onload
  67.     xmlPartners.load("de/kontakt/php/partners.php?country="+sCountry);
  68. }
  69. // end of function
  70.  
  71. this.mcSubmenuVendors.mcPartners.mcSubItemAt.onPress = function() {
  72.     // Östereich
  73.     display("at");
  74. };
  75. this.mcSubmenuVendors.mcPartners.mcSubItemNl.onPress = function() {
  76.     // Niederlande
  77.     display("nl");
  78. };
  79.  
  80. };

Das Feld tCountry wird bei jedem Klick richtig angezeigt. Aber die Daten die per XML kommen sind immer einen Klick hinterher. Warum nur?

Geändert von compuboy1010 (21-07-2005 um 15:21 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 21-07-2005, 16:12   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
benutze den instanznamen und nicht die textvariable

alles so umstellen
aPartners[i]["email"].text=...
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-07-2005, 07:57   #3 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Zitat:
benutze den instanznamen und nicht die textvariable

alles so umstellen
aPartners[i]["email"].text=...
Hrm ....

Das raffe ich nicht. Wie meinst du das?

Was du sagst widerspricht sich ja dem was du schreibst.

Die Textfelder gibt es doch garnicht. Ich kann doch nicht anstatt aPartners[i]["name"] einfach aPartners[i]["name"].text schreiben.

Das wäre doch unlogisch. Bin verwirrt. ..

Langsam komme ich mir vor wie Mr. Bean. Ich kann nicht fassen, dass dieser kurze Code sich komplett anders verhält als geplant - zumal der für mich absolut logisch aussieht.

Geändert von compuboy1010 (22-07-2005 um 08:50 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 22-07-2005, 16:55   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
(mir doch wurscht, wie deine textfelder heissen ;-)

generell:
wenn textfelder über ihren instanznamen angesprochen werden wird dies sofort angezeigt.
wenn textvariablen benützt werden, diese änderungen erfolgen erst im nächsten frame (das hätte die verzögerung erklären können).

wenn das nicht dein problem ist, dann
lade bitte ein demo-fla hoch.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (22-07-2005 um 16:57 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 25-07-2005, 08:45   #5 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Had es dir mal hochgeladen. Ist aber zu groß für dieses Forum:

http://myproggi.zickt.de

Wenn du also auf ein Produkt klickst wird zwar der MCProduct geladen aber keine Beschreibung oder Produktname angezeigt. Die Beschreibung wird erst angezeigt , wenn man auf mcDescription klickt.

Edit:

Habe gerade festgestellt, dass wenn ich nur folgendes in den Frame schreibe:

ActionScript:
  1. attachMovie("product", "mcProduct", 1, {_x:353, _y:277});
  2. mcProduct.displayTitle();

der Titel ebenfalls nicht angezeigt wird. Es scheint also ein Problem mit der Ansteuerung der Funktion zu sein. Habe alles möglich ausprobiert(_level0., this, etc) nix hat funzt.

Wer weiß wo das Prob ist?

Geändert von compuboy1010 (25-07-2005 um 09:28 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 25-07-2005, 10:17   #6 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Müssen die Funktionen auf der Timeline von mcProduct irgendwie als "global" definiert werden? Es kann doch nicht angehen, dass wenn ich einen movie folgenedrmaßen einbinde und ihn dann icht ansteuern kann. Ist ja wie bei der verst3eckten Kamera. Oder tickt Flash manchmal nicht ganz richtig?

ActionScript:
  1. mcProduct.removeMovieClip();
  2.     attachMovie("product", "mcProduct", 1, {_x:353, _y:277});
  3.     // trace(targetPath(mcProduct)); ergibt _level0.main.mcProduct
  4.     _level0.main.mcProduct.displayDescription(); // macht nix
  5.     _level0.main.mcProduct.displayTitle(); // macht nix
  6.  

Geändert von compuboy1010 (25-07-2005 um 12:39 Uhr)
compuboy1010 ist offline   Mit Zitat antworten
Alt 25-07-2005, 16:30   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..Had es dir mal hochgeladen.."
schön, geht es auch als ZIP?

klick ich es an, dann schickt er mir das ding auf den bildschirm.
bei 'auf die festplatte sichern' kommt nur eine html-seite an.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-07-2005, 10:16   #8 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Hier als ZIP: http://myproggi.zickt.de/

Das Problem ist nun, dass das erste ausgewählte Produkt direkt beim ersten Mal geladen wird, dass aber jedes weitere nicht angezeigt wird. Der mcProduct wird also nicht aktualisiert, obwohl die Daten geladen werden, was man sieht wenn man auf Beschreibung klickt.

Die Anzeige ist alles wieder immer einen Klick hinterher.
compuboy1010 ist offline   Mit Zitat antworten
Alt 26-07-2005, 14:47   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ich hab mal zum testen geändert und angepasst:

//xmlProduct.load("de/katalog/php/product.php?pid="+_global.nCurrentPid);
_root.test++;
xmlProduct.load("product"+_root.test+".xml");
}
_root.test=0;

geht !? und wird auch direkt angezeigt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (26-07-2005 um 14:48 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 26-07-2005, 15:19   #10 (permalink)
... loves Japan!
 
Benutzerbild von compuboy1010
 
Registriert seit: Apr 2005
Ort: D'dorf; DE
Beiträge: 715
Oh Mann, was hast du denn da gemacht?

Das raffe ich nicht. Könntest du mir mal die gesamte Datei geben?
compuboy1010 ist offline   Mit Zitat antworten
Alt 26-07-2005, 15:37   #11 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..Das raffe ich nicht.."

ich habe dein product.php nicht. wie soll ich es denn so testen?

ich habe dein product.xml in product1.xml und product2.xml umbenannt und den inhalt geändert (langt für 2mal klicken) und fordere die dateien direkt an. ist exakt das selbe, als wenn die von php erzeugt würden.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele