Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-06-2008, 16:05   #1 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
MCs mit unterschiedlich großen Bildern auf eine Höhe proportional skalieren

Hallo,

kurz und knapp folgendes Problem:

Eine Bildergalerie zeigt Bilder aus einem Ordner, der über PHP ausgelesen wird un eine XML generiert, die wiederum in Flash geladen wird... funktioniert einwandfrei.

Jedoch habe ich ein Problem damit, die einzelnen MCs anzusprechen und sie - trotz unterschiedlicher Größe der Bilder darin - auf eine feste Höhe (100px) und die proportional errechnete Breite (100px*seitenverhältnis) zu skalieren.

Könnte mir jemand von euch sagen, was ich mit meinem Ansatz falsch mache?

ActionScript:
  1. stop();//in Frame (1) stehen bleiben
  2.  
  3. var XMLdaten = new XML();//erstellt ein neues XML Objekt
  4. XMLdaten.ignoreWhite=true; // ignoriert die leerRäume (spaces) inder XML-file
  5. XMLdaten.load("bilder.xml");//lädt die XML-file
  6.  
  7. XMLdaten.onLoad = function(success) {//wenn die Datei geladen wird
  8.  
  9.     XMLdaten_namen = []; // Erstellt ein neues Array namens XMLdaten_namen,
  10.           //hier speichern wir die Variablen wo name="..."steht
  11.     XMLdaten_file = []; // Erstellt ein neues Array namens XMLdaten_file,
  12.                         //hier speichern wir die Variablen wo file="..."steht
  13.     seitenverhaeltnis = [];
  14.    
  15.     if (success) { //wenn das laden der File erfolgreich war
  16.         for (var i=0; i<XMLdaten.firstChild.childNodes.length; i++) {//for schleife-> für alle elemente die firstChild (childNode[0]) besitzt...
  17.             XMLdaten_name[i] = XMLdaten.firstChild.childNodes[i].attributes.dateiname; //namen Attribut
  18.             XMLdaten_file[i] = XMLdaten.firstChild.childNodes[i].attributes.file; //file Attribut
  19.             trace (XMLdaten_file[i]); //gibt den Dateipfad aus
  20.             createEmptyMovieClip ("bild"+i,i); //pro Bild einen MC erstellen
  21.             _root["bild"+i].loadMovie(XMLdaten_file[i]); //die einzelnen Bilder in den neuen MC laden
  22.             trace (XMLdaten_file[i] + " geladen.");
  23.             trace (XMLdaten_file[i]._width + " Pixel breit.");
  24.            
  25.             var breite:Number = _root["bild"+i]._width; //speichert die bildbreite
  26.             trace ("Bildbreite: " + breite);
  27.             var hoehe:Number = _root["bild"+i]._height; //die bildhöhe
  28.             seitenverhaeltnis[i] = breite/hoehe;
  29.             trace (seitenverhaeltnis[i]);
  30.             _root["bild"+i]._height = hoehe;
  31.             //_root["bild"+i]._width = 50 * seitenverhaeltnis[i];
  32.             //_root["bild"+i]._x = _root["bild"+i]._width;
  33.             //_root["bild"+i]._y = 10;
  34.         }
  35.       //das auslesen ist nun abgeschlossen, da die for schleife beendet ist!
  36.         //also gehen wir weiter im Film zum verarbeiten der XML-dateien
  37.         gotoAndStop(2);
  38.     }
  39. }

Brauch nur nen kleinen Gehirntritt, kein fertiges Script, vielen Dank.

Lg
Bine
jun-jun ist offline   Mit Zitat antworten
Alt 05-06-2008, 16:12   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
bild._height=100;
bild._xscale=bild._yscale;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 06-06-2008, 13:16   #3 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
Vielen Dank für die fixe Antwort!

Scheinbar habe ich noch ein anderes Problem, das trace mit der ausgelesenen Breite vorm Skalieren spuckt schon 0 aus.... liegt das daran, dass der das ausliest, wenn das Bild noch nciht in den MC geladen wurde?

Zumindest sehe ich ohne veränderte Höhen/Breitenangaben die Bilder korrekt... sobald ich nur die Höhe auf 100 setze, is alles weiß.
jun-jun ist offline   Mit Zitat antworten
Alt 06-06-2008, 14:22   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von jun-jun Beitrag anzeigen
liegt das daran, dass der das ausliest, wenn das Bild noch nicht in den MC geladen wurde?
dass der das <-- das 'der', das bist du :-) und ist ja wohl klar: was noch nicht geladen wurde ist noch nicht da.

nimm anstatt loadMovie besser loadClip, das hat events dafür (mal in der flash-hilfe nachsehen), da muss 'der' die nicht selbst programmieren ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (06-06-2008 um 14:24 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 09-06-2008, 09:10   #5 (permalink)
Nixnutz
 
Registriert seit: Sep 2004
Beiträge: 53
*lach*

Dass ich jetzt ein 'der' bin, hab ich mir wohl selbst eingebrockt

Danke für den Tipp, hab jetzt gerade ein paar andere Aufgaben erledigt und werfe mich nun voller Wochenenanfangselan wieder in AS. (und das als echter, grünohriger Noob)

Soll die Bildergalerie unter www.agenturneubauer.com so in etwa nachbauen. *tief seufz*

LG
Bine

Geändert von jun-jun (09-06-2008 um 09:32 Uhr)
jun-jun 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:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele