Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-07-2006, 11:10   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
Problem, sobald externe JPG-Datei nicht vorhanden

Hallo,

ich habe mir eine kleine Flashdatei gebastelt, die dynamisch JPG-Dateien einlädt. Leider gibt es Probleme mit dem Script, sobald eine der JPG-Dateien nicht vorhanden ist. (Danach kommt alles durcheinander) Es wäre mir jetzt wichtig, dass das Script so verändert wird, dass es auch wenn eine JPG-Datei nicht vorhanden ist, weiter läuft, d.h. das der Film danach trotzdem weitere/andere JPG-Dateien normal einlädt und korrekt weiterläuft.

Ich hoffe ihr könnt mir weiterhelfen. Ich habe der Übersicht halber eine neue exemplarische Flashdatei gebastelt, in der nur das für das Problem Relevante enthalten ist.
Angehängte Dateien
Dateityp: zip flash.zip (44,7 KB, 3x aufgerufen)
chaser1984 ist offline   Mit Zitat antworten
Alt 18-07-2006, 11:21   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Habe mir das jetzt nicht genau angeguckt, aber hier
PHP-Code:
if(r._width>0) { 
überprüfst du ja, ob der MC der das Bild läd, breiter als 0 ist. Das ist er natürlich nicht, wenn's das Bild nicht gibt. Probier das mal so:
PHP-Code:
if(r._width>0||r.getBytesTotal()== -1) { 
Und du musst das bild auch nicht zweimal laden:
PHP-Code:
    obj.loadMovie(img);//<--- Macht keinen Sinn
    
obj;
    
r.loadMovie(img); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-07-2006, 12:01   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
Vielen Dank für die schnelle Antwort. Das angesprochene Problem ist damit gelöst, leider gibt es ein Weiteres, an das ich vorher nicht gedacht habe. Jetzt funktioniert das Script einwandfrei, wenn ein Bild nicht da ist, oder vollständig geladen ist, doch da die JPG-Dateien recht groß sind (nicht im Beispiel, aber in der orginalen Seite) gibt es es Probleme mit dem Interval, wenn man das Interval unterbricht bevor das Bild geladen ist.

Hier noch mal das Script:
PHP-Code:
MovieClip.prototype.ladeBild = function (obj,img
{
    
obj;
    
r.loadMovie(img);
    
setInterval(function() {
        if(
r._width>0||r.getBytesTotal()==-1) {
            
weite r._width;
            
hoehe r._height
            r
._x = (weite/2)-weite;
            
r._y = (hoehe/2)-hoehe;
            
clearInterval(a)
            
gotoAndPlay(2);
        }
    },
50);

};

MovieClip.prototype.ladeStatus = function (lobj,ausT,ausL,balken) {
    
this[ausT] = lobj.getBytesTotal();
    
this[ausL] = lobj.getBytesLoaded();
    
this.prozent lobj.getBytesLoaded()*100/lobj.getBytesTotal();
    
balken._xscale this.prozent;
    
this.auspro int(this.prozent) + "%";
};

bildladen this._parent.ordner this._parent.bild;
ladeBild(this.container.bild,bildladen);
stop(); 
Es wäre super, wenn das auch noch gelöst werden könnte.
chaser1984 ist offline   Mit Zitat antworten
Alt 18-07-2006, 12:08   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wo und wie wird denn der Intervall unterbrochen? Und warum nimmst du eigentlich nicht die MovieClipLoader-Klasse, wenn du das eh als Flash 8 veröffentlichst?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-07-2006, 12:18   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
Es geht dabei um mehrere Produktreihen, und der User hat die Möglichkeit mit zwei Pfeilen von Produktreihe zu Produktreihe zu springen, dabei werden die Variablen entsprechend verändert (um den entsprechenden Ordner für die passenden Bilder auszuwählen) und das neue Bilder, vom ersten Produkt der Reihe über das Script geladen. Springt man nun über die Pfeile schnell hin und her, läuft das Script nicht mehr richtig ab.

MovieClipLoader-Klasse kenne ich leider nicht. Ich werde aber mal danach suchen!

Geändert von chaser1984 (18-07-2006 um 12:38 Uhr)
chaser1984 ist offline   Mit Zitat antworten
Alt 18-07-2006, 12:48   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ja, setInterval() hat so seine Tücken... Vielleicht einfach löschen, bevor man einen neuen erstellt?
PHP-Code:
...
clearInterval(a);
setInterval(function () {
...
... 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:07   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
so funktioniert es! Danke!

wäre es trotzdem sinnvoller, die MovieClipLoader-Klasse zu benutzen? Auch in vielen anderen Bereichen der Internetseite verwende ich LoadMovie-Befehle um Inhalte in Form von externen Dateien zu laden. Bei extremer Beanspruchung der Navigation kommt es gelegentlich vor, dass falsche Filme übereinander liegen, also die Filme nicht korrekt rausgeschmissen wurden. Gibt es dafür einen Trick oder andere Methoden, die besser und zuverlässiger verwenden werden können?

(ich bin gerade etwas nervig, sorry!)
chaser1984 ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:13   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Der Trick ist, "vernünftig" zu programmieren.
Mehr kann man da sonst nicht zu sagen.

MovieClipLoader solltest du dir jedenfalls mal angucken. Da kann man sich dann sowas wie setInterval() oder onEnterFrame() halt schenken.
Läuft aber nur ab FlashPlayer 7.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:18   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
ich werde es mir mal ansehen.

aber was heisst in diesem Fall vernünftig zu programmieren. woran kann es liegen, dass ab und zu eine externe swf nicht ausgeladen wird? Daran, das vor dem unloadMovie-Befehl die externe swf nicht komplett geladen ist und dadurch nicht rausgeworfen wird?
chaser1984 ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:38   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ich weiß - wie gesagt - nicht, was du da machst. unloadMovie() sehe ich im Script hier gar nicht.
Das Beste ist eh, immer in den selben MC nachzuladen. Dann ist der alte Content auf jeden Fall weg.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:46   #11 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
das mit dem unloadMovie bezieht sich nicht auf dieses Beispiel, sondern auf andere Fälle, da habe ich eine mc mit instanznamen und lade da externe swfs rein, die MC und der Instanzname sind immer gleich. Ab und zu, wenn man sehr schnell hin und her navigiert bleiben swfs drin obwohl sie über unloadMovie ausgeladen wurden. (sogar an mehreren stellen, direkt auf der schaltfläche und im neuen Schlüsselbild!)

Liegt das dann daran, das es ein neues Schlüsselbild in der Zeitleiste gibt?
chaser1984 ist offline   Mit Zitat antworten
Alt 18-07-2006, 13:53   #12 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Das kann man alles (ohne den Aufbau deiner Datei zu kennen) schlecht sagen.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-07-2006, 08:55   #13 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
Problem: Zentrierung im Internet Explorer auf PC

Mein Script funktioniert nun eigentlich genau so, wie ich es mir vorgestellt hatte, doch leider ist mir gerade aufgefallen, das der Internet Explorer aufm PC Probleme macht, bei der Zentrierung des Bildes.

Hier noch einmal die Funktion die das Bild lädt in dem Container zentriert und dann den Film abspielt.
PHP-Code:
MovieClip.prototype.ladeBild = function (obj,img
{
    
obj;
    
r.loadMovie(img);
    
clearInterval(a);
    
setInterval(function() {
        if(
r._width>0||r.getBytesTotal()==-1) {
            
weite r._width;
            
hoehe r._height;
            
r._x = (weite/2)-weite;
            
r._y = (hoehe/2)-hoehe;
            
trace(weite);
            
trace(hoehe);
            
clearInterval(a)
            
gotoAndPlay(3);
        }
    },
50);

}; 
Der Internet-Explorer zentriert jedes Bild erst dann, wenn ich es ein zweites mal lade. Ich habe auch schon versucht, das Bild im dritten Schlüsselbild erneut zu zentrieren, aber das Problem im IE ist immer noch vorhanden.
chaser1984 ist offline   Mit Zitat antworten
Alt 25-07-2006, 09:02   #14 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
Das Problem liegt auf jeden Fall in der If-Abfrage:
PHP-Code:
if(r._width>0||r.getBytesTotal()==-1) { 
Wenn ich das oder r.getBytesTotal()==-1 rausnehme funktioniert es, nur habe ich dann das gleiche Problem wie zu Beginn, dass das Script nicht weiterläuft, wenn eine externe JPG-Datei mal nicht vorhanden ist.

Hat jemand eine andere Idee, wie ich ich abfragen kann, ob das Bild nicht vorhanden ist?
chaser1984 ist offline   Mit Zitat antworten
Alt 25-07-2006, 09:08   #15 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 26
Ich weiss zwar momentan noch nicht warum es jetzt auch so geht, aber das script funktioniert jetzt auch komplett ohne
PHP-Code:
||r.getBytesTotal()==-
also: Problem gelöst.
chaser1984 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 02:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele