Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-02-2006, 19:38   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Bei Klick 2 Bilder in 2 Container laden und faden

Hi, hab ein großes Problem mit onEnterFrame, dass mich in den wahnsinn treibt:

Bei Klick auf ein Thumbnail sollen in 2 Container (con, con2) 2 verschieden große Versionen des jeweiligen Bildes geladen werden. Geladen wird im Hintergrund, erst wenn das Bild geladen ist, soll der Container von _alpha=0 zu _alpha=100 einfaden.

Und zwar soll zuerst "con" sein Bild laden und faden, und danach "con2". Aber auch wenn zufällig con2 flotter sein sollte, darf das nicht den Ladevorgang des ersten Containers stoppen indem con2 einfach sein "delete this.onEnterFrame" losschickt.

Das ist der Code:
PHP-Code:
this.loadcon1();
    
this.loadcon2();

    
MovieClip.prototype.loadcon1 = function() {
        
this.onEnterFrame = function() {
            
// Preloader, kontinuierliche Überprüfung des Ladevorgangs
            
var fin int(_level0.con.getBytesLoaded()*100/_level0.con.getBytesTotal());
            
trace("total con1: "+_level0.con.getBytesTotal());
            
// Prozentwerte berechnen
            
_level0.ladebalken.laden(idfin);
            
// Ladebalken starten
            
if (fin>=100 && _level0.con._width>&& _level0.con._height>0) {
                
// wenn alles geladen wurde...
                
_level0.ladebalken.fertig(idfin);
                
delete this.onEnterFrame;
                
//this.loadcon2();
            
}
    
MovieClip.prototype.loadcon2 = function() {
        
trace("loadcon2 is on the run");
        
this.onEnterFrame = function() {
            var 
fin2 int(_level0.con2.getBytesLoaded()*100/_level0.con2.getBytesTotal());
            
trace("total con2: "+_level0.con2.getBytesTotal());
            
_level0.ladebalken2.laden(idfin2);
            if (
fin2>=100 && _level0.con2._width>&& _level0.con2._height>0) { //wenn geladen
                
_level0.ladebalken2.fertig(idfin2);
                
delete this.onEnterFrame;
            }
        };
    };
        }; 
und das ist die funktion ladebalken.fertig, die aufgerufen wird, wenn der ladevorgang zu ende ist. es gibt einmal ladebalken.fertig für "con" und ladebalken2.fertig für "con2" aber prinzipiell sind sie gleich aufgebaut. Hier ist auch der Fading vorgang eingestellt:

PHP-Code:
this.ladebalken.fertig = function(idfin) {
    
this.progress_txt.text "loaded : Bild"+id;
    
this._visible false;
    
this.onEnterFrame = function() {
        if (
con._alpha<=100) {
            
con._alpha += 10;
        } else {
            
trace("laden 1 fertig");
            
delete this.onEnterFrame;//hier könnte der Fehler sein!!!?
        
}
    };
}; 
Tut mir leid, dass ich mit diesem Script wohl jedem der was davon versteht Augenkrebs verschaffe, aber mir ist es mitlerweile egal, wie es aussieht, hauptsache das Ding lädt endlich...

Geändert von Beezle-Bug (06-02-2006 um 21:09 Uhr)
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 07:00   #2 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
moin,

mach doch für jeden container nen eigenes onEnterFrame...

dann löschen die sich schon mal nicht gegenseitig ihre events weg...

und dann fragst du ab ob das erste bild seine größe (oder _alpha=100) haben und je nach dem lässt du dann das zweite einfaden...

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 07-02-2006, 17:18   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Hi, kannst du mir vielleicht ein ganz simples Beispiel schreiben? Meine Gehirnwindungen können vor lauter Variablen und Funktionen schon gar nicht mehr klar und simpel denken...

function die das auslöst heißt ladeBild.

darin werden die variablen con2pic und con1pic dekleriert, die den Pfad zum zu ladenden Bild beherbergen.

Das ganze sollte irgendwie so aussehen:
--------------

ladeBild = function() {
var con1pic=....
var con2pic=....
con._alpha=0;
con2._alpha=0;

loadMovie(con1pic,"con");
if geladen dann mach con._alpha=100;

DANACH
loadMovie(con2pic,"con2");
if geladen mach con2._alpha=100;

} fertig

arrrrg so blöd kann ich doch nicht sein!!!
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 17:19   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Ich hatte dir doch in nem anderen Thread schon ein Version geschrieben!?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 07-02-2006, 17:22   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
ok, ich versuch's nochmal. huiuiui ;-) Ich mag nen 2. Monitor!!! arrg
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 18:12   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
hat leider noch nicht geklappt.
es muss doch auch einen ganz simplen weg geben, auch wenn das flashtechnisch nicht elegant ist...
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 19:04   #7 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
hi,

vielleicht reicht ja wenn du nur 1 bild lädst wenns sowiso das gleiche ist...

und zwar das große...

das kannste ja dann für das kleine bild runterskalieren...

oder sind die größenunterschiede sooo groß das das runterskalierte k**ke aussieht?

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 07-02-2006, 19:13   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
die größenunterschiede sind zumindest so groß, dass mir jeder an die gurgel springt, der warten muss bis das ganz große bild geladen ist, bevor sich irgendwas tut. deshalb die etwas kleinere Version als Vorgeschmack und zum Überblick vorneweg
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 19:31   #9 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
flash 7 oder 6?

mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 07-02-2006, 19:34   #10 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
leider nur nr. 6
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 20:17   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Habs jetzt so gelöst:

PHP-Code:
function ladeBild(paktBild) {
    if (
paktBild<=9) {
        
nr "0"+paktBild;
    } else {
        
nr paktBild;
    }
    
con1pic "pics/"+nr+dateiname;
    
con2pic "zoom/"+nr+dateiname;
    
bildname mein_xml.firstChild.childNodes[paktBild].attributes.name;
    
info.txt.text bildname;
    
_level0.con.loadMovie(con1pic);
    
_level0.con2.loadMovie(con2pic);
    
_level0.con2._alpha 0;
    
this.onEnterFrame = function() {
        if (
_level0.con2.getBytesLoaded() >= _level0.con2.getBytesTotal()) {
            
_level0.con2.setMask(_level0.mask2);
            
con2._alpha 100;
            
delete this.onEnterFrame;
        }
    };

es klappt einigermaßen, aber leider wird die Maske meistens erst beim 2. Klick auf ein und das selbe Thumbnail aktiviert, vorher erstreckt sich con2 über die ganze Bühne. Kann mir da noch jemand helfen?
__________________
O Genie der Herr ehre dein Ego

Geändert von Beezle-Bug (07-02-2006 um 20:53 Uhr)
Beezle-Bug ist offline   Mit Zitat antworten
Alt 07-02-2006, 20:27   #12 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
sieht ja auf einmal ganz anders aus...

und ohne loader...

welcher button?

am besten du machst mal nen kleine beispiel und schreibst genau was passieren soll...

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 07-02-2006, 21:43   #13 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
war 'ne Verzweiflungslösung, aber ist denkbarerweise nicht gut ;-)

Hier wurde schon ziemlich viel zu dem Thema gepostet, wieder mit preloader. Aber ich mag nicht 2 Foren belegen...

http://www.flashforum.de/forum/showt...65#post1379265

Bitte helft mir!



Es geht letztendlich nur darum, dass bei Klick auf einen ThumbnailMC 2 externe Bilder nacheinander in 2 MCs geladen werden. Zuerst das kleinere Bild in den container "con" und wenn das fertig ist, das große Bild in "con2".
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 08-02-2006, 06:52   #14 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
du hast also 3 bilder...?

1 thumb und 2 die geladen werden sollen?

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two 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 17:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele