Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-07-2004, 13:34   #1 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
load mc --> preloader+onEnterFrame

hi leute, ich hab n kleines problem.
ich möchte in mein "main.swf" einen externen movie "icons.swf" laden. ziel "traeger_icons"
da ich das ganze mit preloaderanzeige mache, habe ich eine onEnterFrame fuction eingebaut.

soweit funktioniert ja auch alles, aber am ende der function möchte ich das onEnterFrame event wieder löschen, da ich performance sparen will.

mein script:

traeger_icons.loadMovie("icons.swf");
this.onEnterFrame = function() {
geladen = _root.traeger_icons.getBytesLoaded();
zuladen = _root.traeger_icons.getBytesTotal();
if (zuladen == geladen) {
_root.traeger_icons.gotoandStop(2);
}
}

problem:

ich habe in der if anbrage folgende zeile hinzugefügt:
delete onEnterFrame;

sieht dann so aus:
traeger_icons.loadMovie("icons.swf");
this.onEnterFrame = function() {
geladen = _root.traeger_icons.getBytesLoaded();
zuladen = _root.traeger_icons.getBytesTotal();
if (zuladen == geladen) {
_root.traeger_icons.gotoandStop(2);
delete onEnterFrame;
}
}

leider funktioniert dann aber garnichts mehr, kann mir vieleicht jemand sagen wie es richtig heissen muss, soll, kann darf....????
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 06-07-2004, 13:41   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
du hast die instanz beim onenterframe ereigniss vergessen:
ActionScript:
  1. delete this.onEnterFrame;

mfG,
Robert

BTW:

bitte aus dem == ein >= machen...!
ActionScript:
  1. if (zuladen >= geladen) {
  2.  
  3. //..
  4.  
  5. }

Geändert von pape (06-07-2004 um 13:42 Uhr)
pape ist offline   Mit Zitat antworten
Alt 06-07-2004, 13:59   #3 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
also am delete this. liegt es auch nicht.....?????
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 06-07-2004, 14:52   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Angry omg...

man man, so blöd wie ich muss erstmal einer sein, das problem hat sich fast erledigt, denn ich habe einfach nur bei der if abfrage den falschen vergleich angestellt, es muss ja logischerweise genau umgekehrt sein... naja, das kommt raus wenn man 12 std. ununterbrochen am rechner sitzt... sorry..

aber ein problem ist immernoch vorhanden:
mein script:
PHP-Code:
traeger_icons.loadMovie("icons.swf");
this.onEnterFrame = function() {
    
total _root.traeger_icons.getBytesTotal();
    
loaded _root.traeger_icons.getBytesLoaded();
    
trace(total);
    
trace(loaded);
    if (
loaded >= 61257) {
    
_root.traeger_icons.gotoandStop(2);
    
delete this.onEnterFrame;
    }

so funktioniert es tadellos, aber warum klapt es nicht, wenn ich bei der if abfrage stat der grösse von icons.swf total eintrage, eigentlich ist doch total genau so gross wie die dateigrösse als wert ausgeschrieben...(61257) ?

was dann wiederum heissen würde, das jedesmal wenn ich die grösse der "icons.swf" ändern würde, ich auch den wert bei der if abfrage im "main.swf" ändern müsste, aber ich will es gerne so haben

funktioniert aber nicht:
PHP-Code:
traeger_icons.loadMovie("icons.swf");
this.onEnterFrame = function() {
    
total _root.traeger_icons.getBytesTotal();
    
loaded _root.traeger_icons.getBytesLoaded();
    
trace(total);
    
trace(loaded);
    if (
loaded >= total) {
    
_root.traeger_icons.gotoandStop(2);
    
delete this.onEnterFrame;
    }

#der wert in meiner traceausgabe bzw. im dynamischentextfeld "loaded" & "total" bleibt immer bei 4 stehen, womit ich dann auch nie meine icons.swf auf der root sehe....?
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shortybmc (06-07-2004 um 14:59 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 06-07-2004, 15:38   #5 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
hmmm, ich habs...

ok, ich bin zwar selber drauf gekommen, aber ich poste es trotzdem mal hier rein, denn vieleicht hat ja irgendwer anders mal das selbe problem:

das script muss so heisssen:
PHP-Code:
traeger_icons.loadMovie("icons.swf");
this.onEnterFrame = function() {
    
total _root.traeger_icons.getBytesTotal();
    
loaded _root.traeger_icons.getBytesLoaded();
    
trace(total);     //nur zur sicherheit
    
trace(loaded);   //nur zur sicherheit
    //umrechnung in prozent
    
if (loaded>=10) {
        
prozent Math.round(loaded/total*100);
        
//auszuführende aktion bei erreichen der 100 prozent
        
if (prozent >= 100) {
        
_root.traeger_icons.gotoandStop(2);
        
delete this.onEnterFrame;
        }
    }

fehler behoben:
--> irgendetwas scheint flash in der berechnung bzw. dem vergleich von load und total verkehrt gemacht zu haben.
aus diesem grund hab ich den wert prozent hinzu gefügt, welcher sich aus loaded / total *100 berechnet.
wie gesagt, irgendetwas macht flash bei der berechnung falsch, deshalb steigt die anzeige der geladenden prozente erst bei 10 ein (welche die basis für die auszuführende if aktion bildet), und wird bei erreichen von 100 durch die if abfrage ein ereignis auslösen.

so, das wars schon. wenn jamand eine elegantere lösung für das ursprüngliche problem zur hand hat, dann her damit...
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shortybmc (06-07-2004 um 15:47 Uhr)
shorty 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 21:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele