Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-03-2004, 14:57   #1 (permalink)
shaly-o-matic
 
Benutzerbild von shaly
 
Registriert seit: Dec 2002
Ort: Düsseldorf
Beiträge: 97
schleife wird ohne trace übersprungen?

hallo!

ich habe ein script, eine ganz einfache if-abfrage, die die höhe eines mc's mit einem zahlwert vergleicht, um dann je nachdem die scrollkomponente zu attachen oder auch nicht.

ActionScript:
  1. function checkScroll()
  2. {
  3.    trace(holdText._height >= holdText.maxHeight);// ???
  4.    if(holdText._height >= holdText.maxHeight)
  5.    {
  6.       scrollBar = _root.textPage.attachMovie("FScrollPaneSymbol", "FScrollPaneSymbol", 99, {_x:holdText._x, _y:holdText._y});
  7.       scrollBar.setScrollContent(holdText);
  8.       scrollBar.setSize(490, holdText.maxHeight);
  9.       scrollBar.setHScroll(false);
  10.    }
  11. }

manchmal funktioniert das ganze nicht. ich habe alle werte getracet, die werden auch gefunden. sowohl vor als auch nach der schleife.

jetzt der knaller:
oben in der funktion ist ja ein trace.
wenn ich den drin habe, geht alles, wenn ich den auskommentiere, ist der bug da.

sowas kann ja wohl nicht sein, oder? ich komm mir schon doof vor, wenn ich das nur als problem schreibe

habt ihr schonmal sowas gehabt?
oder habe ich evtl woanders einen fehler und meine abfrage ist nur das i-tüpfelchen? hilfe....
leider kann ich auch nicht das komplette script posten, weil es sich um ein kundenprojekt handelt.

es geht zwar jetzt, aber irgendwie ist mir das risiko etwas zu hoch, dass das eventuell auf dem einen oder anderen rechner nicht funktioniert...

hmmm...
shaly ist offline   Mit Zitat antworten
Alt 05-03-2004, 16:08   #2 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
man kann eigentlich sagen es liegt nicht am trace.
hat überhaupt keinen einfluss auf deinen code wie er ausgeführt wird- höchstens wird er vielleicht um ne ms verzögert(ums mal zu übertreiben).

is der fehler nicht klar reproduzierbar?dann liegt der fehler woanders.

beim laden des textes eventuell(?):
ist sichergestellt dass der text beim ausführen von "checkScroll" schon vorhanden ist?wenn nicht hättest du nen 0 höhe
ist die einzigst plausible erklärung

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 05-03-2004, 16:21   #3 (permalink)
shaly-o-matic
 
Benutzerbild von shaly
 
Registriert seit: Dec 2002
Ort: Düsseldorf
Beiträge: 97
ja, genau den gleichen gedanken habe ich ja auch, also dass der trace keinen einfluss haben kann.
an die sache mit dem laden der texte habe ich auch schon gedacht, aber das kann es eigentlich auch nicht sein, da er mir unmittelbar VOR der schleife die höhe ausgibt.

jede seite wird identisch aufgebaut, der einzige unterschied könnte in der länge der texte liegen, aber das erklärt mir den fehler auch nicht.

hmm, wenn ich so drüber nachdenke, kann es tatsächlich an der einen millisekunde liegen.
mit trace funktioniert es, ohne nicht. also kann es ja nur mit der verzögerung zusammenhängen...

kann ich auf irgendeine weise abfragen, ob das textfeld schon erstellt ist? sowas wie onLoad oder so?

setInterval fände ich unschön, weil dann ja auch bei schnellen rechnern eine verzögerung eintreten würde...

das ganze ist übrigens für ne cd-rom, eigentlich sollten preloader für das laden der daten überflüssig sein.
shaly ist offline   Mit Zitat antworten
Alt 05-03-2004, 16:30   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Ort: D
Beiträge: 381
Zitat:
das ganze ist übrigens für ne cd-rom, eigentlich sollten preloader für das laden der daten überflüssig sein.
auch bei einer CD kann es zu Verzögerungen kommen.
Es muss sichergestellt sein, das das File geladen ist, bevor man es verwendet.
momo-loom ist offline   Mit Zitat antworten
Alt 05-03-2004, 16:37   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
wo erstellst du den text und wo führst du die funktion aus?
flash arbeitet den code von unten nach oben ab.
d.h. erst die scripts im root dann die scripts in den einzelnen mcs, dann die scripts der mcs die in diesen liegen usw...

aber das sollte bei der auch nich der fehler sein, da so fehler klar reproduzierbar sind.

es deutet NUR auf das asynchrone verhalten von flash hin- dass auf zu ladende daten nicht mit dem code gewartet wird.
so können auch immer unterschiedliche verzögerungen entstehen(wie schnell der server reagiert usw), sodass es mal geht und mal nicht.

wurde immer die richtige höhe ausgegeben?
bau dir doch die dinge die probleme verursache isoliert in einer neuen fla zusammen. mit nem ähnlichen aufbau wie in der original fla
tritt der fehler immernoch auf kannste diese fla posten- wenn nicht interagieren vielleicht doch mehrere sachen?



und wenn ich mich wiederhole *g
konzentrier dich mal auf die sache mit dem laden
wie haste die höhe nachgeprüft? mit dem trace?
des gibt ja immer true zurück sofern das textfeld ansich so groß ist wie der maxwert

schonmal nur die höhe ausgegeben?

zuviel gerede
teste mal

deluxe

edit:grade bei cds. wenn du nen text lädst und ihn gleich verwenden willst...ich kenne kein cdlaufwerk mit ner zugriffszeit von 0ms

Geändert von Deluxe (05-03-2004 um 16:38 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 05-03-2004, 17:40   #6 (permalink)
shaly-o-matic
 
Benutzerbild von shaly
 
Registriert seit: Dec 2002
Ort: Düsseldorf
Beiträge: 97
hallo!

also, ich gehe folgendermassen vor:

erst lade ich die xml-dateien, in denen die texte sind
die texte speichere ich für jede seite in einem array

wenn die seite aufgerufen wird, wird
erst ein container erstellt, in dem dann wiederum per as textfelder erstellt werden.

je länger ich darum nachdenke, desto mehr komme ich zu dem schluss, dass es eigentlich an dem laden liegen muss... denn der text wird nochmal nach markern durchsucht und in html umgewandelt usw usf...
wahrscheinlich laufen im hintergrund noch die anderen funktionen, wenn ich da schon beim checkScroll bin.
getracet habe ich zwar auch die werte an sich, nicht nur den vergleich, aber wahrscheinlich hat das durch die verzögerung getäuscht.
ich versuch mal die stelle abzufangen, wo der arme kleine flashplayer wirklich mit allem fertig ist


aber zum preloaden der texte...
ich dachte, ich kann den zugriff auf die cd dadurch abfangen, dass ich am anfang die texte in containern speicher, also quasi die xmls vorlade? oder täusche ich mich da?
ist schon klar, dass der dann nochmal etwas zeit braucht, sich durch den datenwust für 60 unterseiten zu wühlen...
shaly ist offline   Mit Zitat antworten
Alt 06-03-2004, 10:19   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
verwendest du den onLoad handler bei xml?
denke schon um deine texte zu verarbeiten.
warum nicht einfach dort alle funktionen etc die vorraussetzen dass die texte vorhanden sind einfügen?

oder bauste halt nen kleinen preloader für die site
der nicht nur die bytes der site prüft sondern auch eine kontrollvariable "xmlloaded" in die prüfung einbezieht.
diese variable setzte durch den onLoad handler des xml objekts auf true.
innerhalb des onLoad handlers des xml objekts wandelste den datensatz in arrays um.
auf die kannste nun synchron mit deinem code zugreifen

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 06-03-2004, 12:14   #8 (permalink)
shaly-o-matic
 
Benutzerbild von shaly
 
Registriert seit: Dec 2002
Ort: Düsseldorf
Beiträge: 97
genauso mache ich es ja
also mit dem xml-onload usw.

die ladenverzögerung scheint bei der erstellung des textfeldes zu liegen. kann das sein?

naja, ich werde das montag nochmal testen,

vielen dank aber auf jeden fall!
shaly 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 04:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele