Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-01-2005, 09:00   #1 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
xml lädt online erst nach aktualisierung

meine navigation erzeuge ich mittels navi.xml in meine flash datei baue ich das wie folgt ein:

frame 1:
ActionScript:
  1. myXML = new XML();
  2. myXML.load("xml/navi.xml");
  3. myXML.ignoreWhite = true;

frame 4:
ActionScript:
  1. if(myXML.loaded) {
  2.     if(myXML.status==0){
  3.         menuePoints = myXML.firstChild;
  4.         gotoAndStop('intro');      
  5.     }else gotoAndStop('errMessage');
  6. }else{
  7.     gotoAndPlay(3);
  8. }


das paßt auch wunderbar, online muß ich aber erst nochmals auf aktualisieren im browser clicken, damit die swf zum intro geht und das jedesmal wenn ich den cache gelöscht habe, wie läßt sich das vermeiden?
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 26-01-2005, 09:56   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
PHP-Code:
myXML = new XML;
myXML.ignoreWhite=true;
myXML.onLoad = function(ok){
    if(
ok){
        
//mach was sobald xml geladen ist!
    
}

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 26-01-2005, 10:43   #3 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
so hatte ich es zuerst:
ActionScript:
  1. myXML = new XML();
  2.  
  3. myXML.onLoad=machWas;
  4. myXML.load("xml/navi.xml");
  5. myXML.ignoreWhite = true;
  6.  
  7. function machWas(success) {
  8.     if(success) {
  9.     menuePoints = myXML.firstChild;
  10.     gotoAndStop('intro');
  11.     }
  12.     else gotoAndStop('errMessage');
  13. }
  14. stop();

SAME PROCEDERE!!!
lädt erst nach aktualisierung
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 26-01-2005, 11:06   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
also beide möglichkeiten sind eigentlich gleichwertig.
man sollte sie aber nicht mixen.
denn der standard onLoad setzt den status loaded auf true.
benutzt man eine eigenes onLoad event muß man diese eigenschaft manuell setzen.

bei deiner onLoad version sehe ich aber auch keinen fehler du legst keine referenz deiner funktion in einer variablen ab, somit sollte diese auch beim initialisieren verfügbar sein.

klappt denn die sache wenigstens offline?
(entspreche dem gecacheten werten da diese auch von der platte geladen werden)

es gäbe noch folgendes zu sagen:
ActionScript:
  1. function machWas(success) {
  2.     if(success) {
  3.     menuePoints = myXML.firstChild;
  4.     gotoAndStop('intro');
  5.     }
  6.     else gotoAndStop('errMessage');
  7. }
der gültigkeitsraum bezieht sich nach der zuweisung bereits auf das xml objekt also warum nicht per this darauf zugreifen?
ebenso solltest du explizit eine referenz auf deine zeitleiste ablegen, worauf du dann die gotoAndStop methode aufrufen kannst
ActionScript:
  1. myXML.referenz=this
  2. function machWas(success) {
  3. //4.
  4. trace("gel. frames: "+_root._framesloaded)
  5. trace("gesamtframes: "+_root._totaframes)
  6. trace("gesamt: "+_root.getbytesTotal())
  7. trace("geladen: "+_root.getBytesLoaded())
  8. //1.
  9. trace("onLoad ausgeführt")
  10. //3.
  11. trace("success: " + success)
  12.     if(success) {
  13.       this.referenz.menuePoints = this.firstChild;
  14.       this.referenz.gotoAndStop('intro');
  15. //2.
  16. trace(this.referenz.gotoAndStop) //type function ?
  17.     } else{
  18.      this.referenz.gotoAndStop('errMessage');
  19.     }
  20. }
prüfe mal per trace ob du
1. der onLoad überhaupt abgeschossen wird
2.die methode gotoAndStop vorhanden ist
3.ob success auch wirklich true ist(vielleicht vermurkst dein server etwas?)
4.zum zeitpunkt des events muß natürlich auch das frame geladne sein welches angesteuert werden soll sonst passiert nichts
framenummer also merken und mit den framesloaded vergleichen
oder analog dazu:
zuladende und geladene bytes vergleichen


deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 26-01-2005, 11:10   #5 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
also das es funktioniert sieht man ja daran, daß es beim 2. mal immer klappt. also is das AS erstmal richtig. ich glaube aber auch das es an punkt 4 von deluxe liegt.

lade die xml erst wenn der komplette film geladen wurde, sonstr lädt er evtl. erst die xml und erst später den rest des filmes, z.b. das intro.


gruß maddin
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 26-01-2005, 11:53   #6 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
weiss jetzt nicht, ob die xml zuerst geladen wird, und danach der mc und dass es deshalb nicht klappt.

kannst aberfolgendes machen, um zu verhinder, dass die xml ausm cache kommt.
häng eine random-zahl an die xml-datei.
so denkt der browser, dass es sich immer um eine andere datei handelt..

ansonsten viel glück..

grüssle
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 26-01-2005, 12:32   #7 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
servus maddin79,

ich denke auch das das as ansich stimmt, am 'inrto' kann es nicht liegen, das ist nur ne grafik mit zwei buttons, der fgilm bleibt da stehen und der user kann aussuchen in welchen zweig er möchte, dafür muß dann das xml geladen sein.

servus the binary

ich versteh nicht ganz wozu das gut sein soll, aber mach mir doch bitte verständlich wie du das meinst: 'häng eine random-zahl an die xml-datei', bin für jede idee dankbar.

weter so...
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 26-01-2005, 14:18   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
an irgendetwas muß es liegen
das tracen sollte einzig und allein den zweck haben zu prüfen ob im ersten druchgang etwas nicht stimmt.

aber scheinbar ist das zuviel aufwand.

sicher ist es liegt am laden eines elementes
xml oder film

also mußte beide sache überprüfen, eins von den beiden verrennt sich während/nach dem laden


viel spaß noch
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 26-01-2005, 14:30   #9 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
sorry deluxe,

merci vielmals für deine hilfe, ist keineswegs zuviel aufwand gewesen, ich hab extra ne weitere ebene angelegt mit textfeld und alle trace anweisungsvorschläge deinerseits da reingeladen und was soll ich dir sagen auch online schien alles wunderbar
aber das intro geladen hat er erst nach aktualisieren der seite, grrrrr.....

ich habe die anweisung jetzt wie folgt geschrieben und siehe da es funzt!!!

ActionScript:
  1. myXML = new XML();
  2.  
  3. myXML.onLoad=machWas;
  4. myXML.load("xml/navi.xml");
  5. myXML.ignoreWhite = true;
  6.  
  7. function machWas(success) {
  8.     if(success) {
  9.     this.gotoAndStop('intro');     
  10.     menuePoints = this.firstChild;
  11.     }
  12.     else gotoAndStop('errMessage');
  13. }
  14. stop();
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 26-01-2005, 15:31   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
ActionScript:
  1. myXML = new XML();
  2. myXML.ref=this
  3. myXML.ignoreWhite = true;
  4. machWas=function(success) {
  5.     if(success) {
  6.      this.ref.gotoAndStop('intro');     
  7.      this.ref.menuePoints = this.firstChild;
  8.     }
  9.     else this.ref.gotoAndStop('errMessage');
  10. }
  11. myXML.onLoad=machWas;
  12. myXML.load("xml/navi.xml");
  13. stop();

geht das hier?
mir kommt es HÖCHST suspekt vor, dass das was du gemacht hast funktioniert.
das this referenziert das xmlobjekt welches keine gotoAndStop methode besitzt.

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 26-01-2005, 17:23   #11 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
@deluxe
ActionScript:
  1. myXML.ref=this

wenn sich 'this' auf '_root' bezieht, sollte es doch funzen...
oder hab ich mal wieder was überlesen ?

grüssle
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 26-01-2005, 18:06   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
ActionScript:
  1. //..
  2. function machWas(success) {
  3.     if(success) {
  4.     this.gotoAndStop('intro')
  5. //..
  6.  
in seinem script verweist das this auf das xml objekt, und trotzdem gehts, dann will ich wissen ob die 0815 lösung geht oder sein root im nirgendwo liegt, worauf sich dann eventuell das this in seinem script bezieht.
..gelabere..wollte einfach eine gegenprobe

deluxe

Geändert von Deluxe (26-01-2005 um 18:07 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 26-01-2005, 21:51   #13 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ich will ja kein spielverderber sein...aber WARUM??? um alles in der welt mehr als ein frame???? das hört sich doch mal wieder nach nem derben timingproblem an...

und das hier geht in einem frame problemlos:
ActionScript:
  1. myXML = new XML();
  2. myXML.refTL = this;
  3. myXML.onLoad = function(succ){
  4.           if(succ){
  5.              var mc = this.refTL;
  6.              trace('THIS : '+this+'  !!!');
  7.              trace('gotoAndStop ??? '+this.gotoAndStop);
  8.              mc.menuPoints = this.firstChild;
  9.              mc.gotoAndStop('intro');
  10.           }else{
  11.              trace('oha...fehler beim laden der daten...sorry...!');
  12.           }
  13. }
  14.  
  15. myXML.load('meinXML.xml');

das geht definitiv ..zunmindest mal in einem einzigen frame...





greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 27-01-2005, 16:12   #14 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
lange rede kurzer sinn, das problem ist noch nicht gelöst.

meine weiter oben angebrachte idee mit 'this.gotoAnd...' ist natürlich völliger blödsinn gewesen, es hatte kurzfristig funktioniert aber nur weil ich das stop() aus dem frame herausgenommen hatte und der film automatisch zu intro weiterläuft, das problem ist nun aber das das xml scheinbar nicht immer geladen ist.

ich habe mal nen kleinen dummy aufs netzt gelegt:
guckst du hier

zwei textfelder sind zu sehen, links steht wieviel geladen ist etc. und rechts erscheint ein attribut aus der xml-datei: 'oben'.

nach löschen des caches und anschließendem auktualisieren bleibt das rechte textfeld leer, nach weiterem aktualisieren steht wieder 'oben' drin.

wie stelle ich sicher das das xml vollständig geladen ist?
Angehängte Dateien
Dateityp: zip xml.zip (11,7 KB, 1x aufgerufen)
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 27-01-2005, 18:10   #15 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
momentaner status:
mehrframelösung
im hinteren frame setzte variable n innerhalb des frames
und im frame liegt das textfeld mit variablenname(das ist nicht der instanzname des textfelds!) "n"

"dummerweise" wird zu erst das textfeld gesetzt und dann erst die variable
da ein textfeld welches keinen instanznamen erhält sondern nur einen variablennamen-wie vor urzeiten- sich nur wie ein "fenster in den arbeistspeicher" verhält, und dort zum zeitpunkt des setzens nichts findet
scheint das textfeld (n) leer zu sein.

also machste folgendes
du steigst auf ne ein-frame-lösung um warum du überhaupt mehrere frames benutzt weiß ich nicht.

also im ersten frame das script und das textfeld.
das textfeld bekommt den instanznamen "txtfeld"
und im script
ActionScript:
  1. menuePoints.
  2. myXML.onLoad = function(succ){
  3.           if(succ){
  4.              var mc = this.refTL
  5.            mc.txtfeld.text=this.firstChild.childNodes[0].attributes.title;
  6. //...
  7.  
bestehst du auf deine mehrframelösung


ActionScript:
  1. //statt
  2. n = menuePoints.childNodes[0].attributes.title;
  3. //das
  4. txtfeld.text=menuePoints.childNodes[0].attributes.title;
das textfeld wird gesetzt und danach der text

gruß
deluxe
Deluxe 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 13:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele