Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-02-2005, 18:31   #1 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
Breite von JPG bem Laden auslesen

Aloa,

schnell den Beitrag verfassen bevor nix mehr geht ;-)
Ich hab folgendes Problem.
Aus einer Datenbank bekomme ich die Namen für JPGs die dynamisch in einen MC geladen werden. Siehe Script unten. Da die JPG aber unterschiedlich lang sind, muss ich irgendwie die Breite erfahren, bevor das JPG im MC ist, damit dieser richtig positioniert wird.
Hat da jemand Erfahrung oder eine Idee? Mit meine Methode geht's leider nicht.

Grüsse
pixel

PHP-Code:
 MovieClip.prototype.generateContent = function(idlinktlinkfdateidisplay) {
      var 
mcpfad "mc_contentDaten";
      
bildLoader = new com.qlod.LoaderClass();
      
_root.createEmptyMovieClip("mc_contentDaten"20);
      
_root.mc_contentDaten._x 80;
      
_root.mc_contentDaten._y 400;
      for (var 
0i<datei.length-1i++) {
          var 
mc mc_contentDaten.createEmptyMovieClip("mc_container"+ii);
          var 
file "content/"+display.toLowerCase()+"/"+datei[i]+".jpg";
          
this.createEmptyMovieClip("mc_balken"1590);
          
mc_balken.onLoadProgress = function(loaderObj) {
              var 
percent Math.floor(loaderObj.getPercent());
              var 
kbGeladen loaderObj.getKbLoaded();
              var 
kbTotal loaderObj.getkbTotal();
              
_root.createTextField("t"011451821521);
              
t.text "lade Bild: "+kbGeladen+" kb";
              
= new TextFormat();
              
f.align "center";
              
f.font "Verdana";
              
f.size 10;
              
f.color 0xFFFFFF;
              
t.setTextFormat(f);
          };
          
bildLoader.addListener(mc_balken);
          
bildLoader.setMinSteps(5);
          
bildLoader.addListener(this);
          
bildLoader.load(mcfile);
          
_root.mc_contentDaten["mc_container"+i].onEnterFrame = function() {
              if (
_root.mc_contentDaten["mc_container"+i].kbLoaded == kbTotal) {
                  
breite _root.mc_contentDaten["mc_container"+i]._width;
              }
          };
          
trace("breite: "+breite);
          
_root.mc_contentDaten["mc_container"+i]._x posX;
          
posX += _root.mc_contentDaten["mc_container"+i].breite;
      }
  }; 
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 15-02-2005, 18:42   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
>Da die JPG aber unterschiedlich lang sind, muss ich irgendwie die Breite
>erfahren, bevor das JPG im MC ist, damit dieser richtig positioniert wird.

Das wird wohl nicht gehen.

Das wäre ja so, als ob ich Dich anrufen würde, um Deine Telefonnummer
zu erfahren. :-)

Du könntest es aber so machen:
1. Movieclip, in den geladen wird, auf «_visible = false» stellen
2. Bild laden
3. wenns geladen ist, Breite abfragen
4. Movieclip positionieren
5. Movieclip auf «_visible = true» stellen

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 15-02-2005, 18:48   #3 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
Zitat:
Zitat von gaspode
>Da die JPG aber unterschiedlich lang sind, muss ich irgendwie die Breite
>erfahren, bevor das JPG im MC ist, damit dieser richtig positioniert wird.

Das wird wohl nicht gehen.

Das wäre ja so, als ob ich Dich anrufen würde, um Deine Telefonnummer
zu erfahren. :-)
lol, netter vergleich

aber der Ansatz ist gut. Werd gleich mal dran basteln ...

greets
pixel
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 15-02-2005, 20:58   #4 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
Juhuu, Ansatz gut aber die realisation lässt leider etwas zu wünschen übrig.
Den Wert von einem JPG bekomme ich schon ausgelesen, aber irgendwie wird das oEF in der Schleife nicht richtig verarbeitet. Es wird nur der letzte MC der dynamisch erzeugt wird, verarbeitet.
Ich wüsste derzeit aber auch nicht, wie ich es besser scripten könnte.
hier mal das script, vielleicht hat jemand eine idee.

PHP-Code:
MovieClip.prototype.generateContent = function(idlinktlinkfdateidisplay) {
     var 
mcpfad "mc_contentDaten";
     
bildLoader = new com.qlod.LoaderClass();
     
_root.createEmptyMovieClip("mc_contentDaten"20);
     
_root.mc_contentDaten._x 80;
     
_root.mc_contentDaten._y 400;
     for (var 
0i<datei.length-1i++) {
         var 
mc mc_contentDaten.createEmptyMovieClip("mc_container"+ii);
         
mc._alpha 0;
         var 
file "content/"+display.toLowerCase()+"/"+datei[i]+".jpg";
         
this.createEmptyMovieClip("mc_balken"1590);
         
mc_balken.onLoadProgress = function(loaderObj) {
             var 
percent Math.floor(loaderObj.getPercent());
             
kbGeladen loaderObj.getKbLoaded();
             
kbTotal loaderObj.getkbTotal();
             
_root.createTextField("t"011451821521);
             
t.text "lade Bild: "+kbGeladen+" kb";
             
= new TextFormat();
             
f.align "center";
             
f.font "Verdana";
             
f.size 10;
             
f.color 0xFFFFFF;
             
t.setTextFormat(f);
         };
         
bildLoader.addListener(mc_balken);
         
bildLoader.setMinSteps(5);
         
bildLoader.addListener(this);
         
bildLoader.load(mcfile);
         
//_root.createEmptyMovieClip("checker", 1595);
         
_root.createEmptyMovieClip("mc_Check"+i333+i);
         
//trace(333+i);
         
_root["mc_Check"+i].onEnterFrame = function() {
             if (
mc.getBytesTotal()>0) {
                 
trace("mc:"+mc);
                 if (
mc.getBytesLoaded()>=mc.getBytesTotal()) {
                     if (
mc._width>0) {
                         
trace(mc);
                         
delete this.onEnterFrame;
                         
trace("blubb");
                         
breite mc._width;
                         
trace("breite: "+breite);
                         
mc.fade_alpha(1009);
                     }
                 }
             }
         };
         
_root.mc_contentDaten["mc_container"+i]._x posX;
         
posX += _root.mc_contentDaten["mc_container"+i].breite;
     }
 }; 
greets
pixel
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 16-02-2005, 10:20   #5 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
ich steig jetzt so schnell nicht durch, aber:

>breite = mc._width;

überschreibt sich der wert so nicht jedesmal?
bzw. speicher doch alle width-werte in einem array,
damit du sie nach dem laden weiterverarbeiten kannst.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 16-02-2005, 10:42   #6 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
hi gaspode,

mit dem überschreiben könntest du recht haben.
Das problem das aber erstmal besteht, das von der variable mc nur die letzte in die oEF übergeben wird und so nur ein MC angesprochen wird. Wenn es z. B. 2 JPGs gibt, wird das oEF zweimal erstellt, aber nur die variable mc der letzten Schleife in jeden oEF übergeben.
Hoffentlich hab ich das verständlich erklärt?!

greets
pixel
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 16-02-2005, 11:15   #7 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
hast du das mal mit mehr als zwei jpegs getestet?

ich gehe mal davon aus, daß «datei» ein array ist?
wie ist denn die länge des arrays, wenn es zwei jpegs gibt?
wahrscheinlich 2 oder nicht?
in deiner for-schleife kommt dann aber nur das erste durch,
da i<2-1 nur für i=0 gilt.

siehe: for (var i = 0; i<datei.length-1; i++)

aber das ist wahrscheinlich nicht der fehler ...?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 16-02-2005, 12:07   #8 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
nein, das ist es nicht. Ich arbeite mit zwei Datensätzen/JPG, und beide werden auch geladen. Jedoch wird aber nur eines sichtbar.
Es wird wie geschrieben nur ein Instanzpfad (der letzte) in die oEF function übergeben, und das kapier ich einfach nicht warum das so ist.
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 16-02-2005, 12:42   #9 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
kannst du mal ne beispiel-fla hochladen?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 16-02-2005, 18:37   #10 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
ja, werd versuchen das mal abzuspecken bzw forumtauglich zu machen.
hab da eben noch die idee, das ganze in eine extra function auszulagern.
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 16-02-2005, 20:15   #11 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
hey gaspode,

jetzt klappt es. ich habe das oEF in eine extra function ausgelagert.
der dialog mit dir ist echt hilfreich.

grüsse
pixel
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 16-02-2005, 20:43   #12 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
>der dialog mit dir ist echt hilfreich.

gerne wieder ;-)

gruß, gaspode
gaspode 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 22:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele