Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-01-2004, 08:50   #1 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499
ereignis auffangen (loadmovie --> bild in container)

hallo

zuerst mal mein code:

ActionScript:
  1. function thumbladen () {
  2. //schleife zum thumbnail reinladen
  3. for (var i = 1; i <= 4; i++) {
  4.     var mc =this["thumb"+i];
  5.     bildurl = "stuff/" + _global.kundennummer + "/" + _global.kategorie + "_" + i + ".jpg";
  6.     mc.loadMovie(bildurl);
  7.     mc._xscale = 22;
  8.     mc._yscale = 22;
  9.     //trace(mc);
  10.     //trace("das ist die bildurl" + bildurl);
  11.     }
  12. }
  13.  
  14. function thumbnail (bild) {
  15. //funktion die testet ob ein bild existiert.
  16. //wird durch ne schleife aufgerufen
  17. //setzt buttons der thumbnails auf visible oder invisible
  18.  var mc = this["thumb"+bild];
  19. //trace (mc)
  20. bt = mc.getBytesTotal();
  21. trace(mc);
  22. trace("hier kommt bt " + bt);
  23. trace("grösse ist " + mc.getBytesTotal(););
  24.  
  25. // wenn bt==0
  26. if (!bt) {
  27.     trace("Teste ob Bild " + bild + "existiert");
  28.     }
  29. // Wenn Bild nicht exisitiert
  30. if (bt == -1) {
  31.     trace("Bild " + bild + "existiert nicht");
  32.     but_vis = this["button" + bild];
  33.     but_vis.enabled = false;
  34.     }
  35. // Wenn Bild Existiert
  36. if (bt>10) {
  37.     trace("Bild " + bild + "wird geladen");
  38.     but_invis = this["button" + bild];
  39.     but_invis.enabled = true;
  40. }
  41. }
  42.  
  43. function thumbaufruf() {
  44. //ruft thumbnail 4mal auf und setztmdie buttons auf enabled=false etc
  45.     for (var i = 1; i <= 4; i++) {
  46.         trace("bildnummer " + i +"wird aufgerufen");
  47.         thumbnail (i);
  48.         }
  49. }
  50.     thumbladen ()
  51.     thumbaufruf();

so.

per AS lade ich bilder in 4 vorgegebene container und scaliere sie kleiner. danach (ist es wirklich danach?) teste ich ob etwas in dem jeweiligen container ist und will durch das ergebenis etwas anderes verändern (buttons enablen/disablen). leider klappt es so nciht ganz (waraum auch imemr ich steh im mom vollauf dem schlauch ).


mit allen trace befehlen wie sie hier abgebildet sind kommt aus ausgabe folgendes:

Zitat:
_level0.ziel.bilder_mc.thumb1
_level0.ziel.bilder_mc.thumb2
_level0.ziel.bilder_mc.thumb3
_level0.ziel.bilder_mc.thumb4
bildnummer 1wird aufgerufen
Bild 1wird geladen
bildnummer 2wird aufgerufen
Bild 2wird geladen
bildnummer 3wird aufgerufen
Bild 3wird geladen
bildnummer 4wird aufgerufen
Bild 4wird geladen
Error opening URL "file:///XXX/flash/stuff/1/1_3.jpg"
Error opening URL "file:///XXX/flash/stuff/1/1_4.jpg"
in diesem beispiel gibt es keine bilddatei für nummer 3 und 4. trotzdem wird angezeigt dass alle bilder druchgeladen werden, d.h. ( if (bt>10) {
trace("Bild " + bild + "wird geladen");
but_invis = this["button" + bild];
but_invis.enabled = true;
) wird jedesmal ausgeführt.
ist ein leerer container (von hand erstellt) grösser als 10 byte?
hab ich da einen fatalen denkfehler?
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 05-01-2004, 09:53   #2 (permalink)
jungflasher
 
Benutzerbild von sesamstrassenbe
 
Registriert seit: Oct 2002
Ort: Dortmund
Beiträge: 132
hallo!

also, als erstes würde ich das ganze mal online ausprobieren.
hatte jetzt schon öfter das problem, dass ein film einwandfrei
im netz funktioniert, lokal auf meinem rechner aber weder in
der testumgebung noch in einer html-datei.

die zweite möglichkeit wäre, die geladenen bytes zu checken.
ActionScript:
  1. bl = mc.getBytesLoaded();
  2. // Wenn Bild Existiert
  3. if (bl > 4) {
  4. trace("Bild " + bild + "wird geladen");
  5. but_invis = this["button" + bild];
  6. but_invis.enabled = true;
  7. }
vielleicht hilft dir das weiter...

gruß! daniel
__________________
sesamstrassenbert. so viel platz muss sein ;-)

www.digisurf.de
sesamstrassenbe ist offline   Mit Zitat antworten
Alt 05-01-2004, 10:22   #3 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499
hi daniel!

leider nciht
hab jetzt nochmal drüber nachgerdacht und nen denkfehler entdeckt (glaube icgh zumindest ): ich frage ja nach dem in den container geladenen bild. ich könnte ja eigentlich viel einfacher fragen ob das bild überhaupt vorhanden ist (auf der server vorhanden ist).

///// EDIT online hab ichs auch schon probiert

habs jetzt umgebaut und komme aber damit auf das glecihe ergebnis (d.h. es funkt immer noch nciht)

ActionScript:
  1. var mc = "stuff/" + _global.kundennummer + "/" + kat + "_" + bild + ".jpg"
  2. var bt = mc.getBytesTotal();
  3. trace("mc ist: " + mc);
  4. trace("hier kommt bt: " + bt);
  5. //trace("grösse ist " + mc.getBytesTotal(););
  6.  

getraces wird:


Zitat:

bildnummer 1wird aufgerufen
stuff/1/_1.jpg
hier kommt bt
Teste ob Bild 1existiert
bildnummer 2wird aufgerufen
stuff/1/_2.jpg
hier kommt bt
Teste ob Bild 2existiert
bildnummer 3wird aufgerufen
stuff/1/_3.jpg
hier kommt bt
Teste ob Bild 3existiert
bildnummer 4wird aufgerufen
stuff/1/_4.jpg
hier kommt bt
Teste ob Bild 4existiert
Error opening URL "file:///XXX/stuff/1/1_3.jpg"
Error opening URL "file:///XXX/stuff/1/1_4.jpg"
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 05-01-2004, 11:33   #4 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499


verwirrt wie nie *G*
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 05-01-2004, 12:28   #5 (permalink)
jungflasher
 
Benutzerbild von sesamstrassenbe
 
Registriert seit: Oct 2002
Ort: Dortmund
Beiträge: 132
Zitat:
var mc = "stuff/" + _global.kundennummer + "/" + kat + "_" + bild + ".jpg"
var bt = mc.getBytesTotal();
funktioniert das theoretisch wirklich? boah :-O

wahrscheinlich liegt dein problem darin, dass du thumbladen(); und
thumbaufruf(); direkt hintereinander aufrufst. so schnell ist as nicht *g*
ich versuche sowas möglichst immer auf mehrere frames zu verteilen.

hab mal schnell was zusammengetextet. ist aber mit vorsicht zu genießen!
hab hier grad überhaupt keine möglichkeit zum testen ;-)

bild1:
ActionScript:
  1. thumbladen();
  2. thumbNr = 1;
  3. startZeit = getTimer();
bild 3:
ActionScript:
  1. timeout = 5000;
  2. ladeZeit = getTimer() - startZeit;
  3.  
  4. var mc = this["thumb"+thumbNr];
  5. var bt = mc.getBytesTotal();
  6. var bl = mc.getBytesLoaded();
  7.  
  8. if (bt == -1) { // Bild vorhanden?
  9. trace("Bild " + thumbNr + "existiert nicht");
  10. but_vis = this["button" + thumbNr];
  11. but_vis.enabled = false;
  12. }
  13.  
  14. if ( (bl == bt) && (bl > 4) ) { // bild korrekt geladen?
  15. if (thumbNr < 4) { // weitere Bilder laden?
  16. but_invis = this["button" + thumbNr];
  17. but_invis.enabled = true;
  18. thumbNr += 1;
  19. gotoAndPlay(_currentframe - 1);
  20. } else { // alle Bilder geladen
  21. but_invis = this["button" + thumbNr];
  22. but_invis.enabled = true;
  23. trace(thumbNr + " Bilder fertig geladen");
  24. }
  25. }  else { // Timeout
  26. if (ladeZeit < timeout) {
  27. gotoAndPlay(_currentframe - 1);
  28. } else {
  29. trace("Timeout bei Bild " + thumbNr);
  30. thumbNr += 1;
  31. gotoAndPlay(_currentframe - 1);
  32. }
  33. }
__________________
sesamstrassenbert. so viel platz muss sein ;-)

www.digisurf.de
sesamstrassenbe ist offline   Mit Zitat antworten
Alt 05-01-2004, 13:23   #6 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499
Zitat:
Geschrieben von sesamstrassenbe

var mc = "stuff/" + _global.kundennummer + "/" + kat + "_" + bild + ".jpg"
var bt = mc.getBytesTotal();


funktioniert das theoretisch wirklich? boah :-O

tja... mc ist auf jedenfall richtig, nur mit byteloaded/total scheint es damit probleme zu bekommen, jedenfalls traced er mir auf bt gar nichts

>>>wahrscheinlich liegt dein problem darin, dass du thumbladen(); und
>>>>thumbaufruf(); direkt hintereinander aufrufst. so schnell ist as nicht *g*
>>>>>ich versuche sowas möglichst immer auf mehrere frames zu verteilen.

ja ich hab jetzt mal den thumb laden aufruf aufs erste frame gepackt und alles andere ins zweite. d.h. er lädt alle bilder rein (bzw probiert es) und erst danach versuch ich abzufragen welches bild denn eigentlich existiert damit ich dann den klickbaren button verschwinden lassen kann bzw weiter anzeigen lasse.

so jedenfalls hab ich mir das gedacht. müsste ja eigentlich gar ncihzt schwer sein. trotzdem hänge ich jetzt daran ausfindig zu machen ob ein bild existiert oder nicht

danke dass du dir soviel mhe machst. ledier verschiebt das alles nur das problem

var bt = mc.getBytesTotal() ;


scheint ncht wirklich funktionsfähig zu sein. aber wie kann man denn sonst nach einem bild fragen und bei einen zurückkommenen fehler (=bild ist nciht da) etwas ausführen lassen?
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 05-01-2004, 13:58   #7 (permalink)
jungflasher
 
Benutzerbild von sesamstrassenbe
 
Registriert seit: Oct 2002
Ort: Dortmund
Beiträge: 132
hm... dann weiss ich auch nicht weiter :-(

ein einfacher timeout reicht dir also nicht für den test, ob das bild
vorhanden ist? ist natürlich auch nicht die eleganteste lösung ;-)

wie gesagt, ich kann hier grad rein gar nix testen oder probieren.
werde mich zuhause aber nochmal mit dem problem beschäftigen...
__________________
sesamstrassenbert. so viel platz muss sein ;-)

www.digisurf.de
sesamstrassenbe ist offline   Mit Zitat antworten
Alt 05-01-2004, 14:07   #8 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499
5 sek sind schon ne lange zeit ((( ))) jedenfalls hier weil sie ja zur definition de sklickbaren bereichs dienen.

danke dass du dir soviel mühe damit machst
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 05-01-2004, 14:21   #9 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499
habs per zufall hinbekommen.

weiss nicht genau wie aber es funktioniert jetzt genau so wie ich es mir virgestellt habe.
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 05-01-2004, 14:31   #10 (permalink)
jungflasher
 
Benutzerbild von sesamstrassenbe
 
Registriert seit: Oct 2002
Ort: Dortmund
Beiträge: 132
glückwunsch!

wenn du noch rausbekommst, woran es gelegen hat,
kannst du ja kurz posten. würde mich interessieren...
__________________
sesamstrassenbert. so viel platz muss sein ;-)

www.digisurf.de
sesamstrassenbe 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 11:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele