mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mo 10.12.2018 17:01 Benutzername: Passwort: Auto-Login

Thema: Bilder unterschiedlicher Größe mit XML in Flash laden vom 04.06.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Bilder unterschiedlicher Größe mit XML in Flash laden
Seite: 1, 2  Weiter
Autor Nachricht
Krisslinger
Threadersteller

Dabei seit: 21.04.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 04.06.2008 16:00
Titel

Bilder unterschiedlicher Größe mit XML in Flash laden

Antworten mit Zitat Zum Seitenanfang

Hey,

wie mein Titel schon sagt, würde ich gerne mehrere Bilder (Hoch- und Querformat, unterschiedliche Größen) in eine Galerie laden. Die Breite sollte immer fest sein, die Höhe muss demenstprechend varieren. Alle Bilder sollen am Ende untereinander stehen, bündig zum vorigen.

Hab mir jetzt schon verschiedene Threads angeschaut, unter anderem das Tutorial von FlamingArt und einige Videos auf gotoandlearn.com Allerdings haben bei allen die Bilder ne feste Größe und können so in einen Movieclip fester Größe geladen werden.
Bei FlamingArts Tutorial sind die Größen der Bilder und deren Position im XML Dokument angegeben, dh aber ich müsste dann für jedes Bild extra die y-Position ausrechnen. Lässt sich das auch einfacher lösen, dass ich nur die Bilder in der XML Datei angebe und Flash die abhängig von der Höhe untereinander richtig plaziert?

Wär cool wenn mir jemand nen Ansatz hätte, die XML Sache ist noch sehr jungfräulich.

Vielen Dank
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 40
Geschlecht: Männlich
Verfasst Mi 04.06.2008 16:05
Titel

Antworten mit Zitat Zum Seitenanfang

Schau Dir mal den MovieClipLoader an. Dann definierst Du dir eine Breite.

Wenn du jetzt ein Bild geladen hast, setzt Du das bild auf diese Breite mit Bild._width.

Die höhe kriegst du dann ganz einfach mit Bild._yscale = Bild._xscale


Oder hab ich dein Problem jetzt falsch vertanden ?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Krisslinger
Threadersteller

Dabei seit: 21.04.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 04.06.2008 18:37
Titel

Antworten mit Zitat Zum Seitenanfang

Ich glaube du hast die Frage richtig verstanden, allerdings versteh ich die Antwort nicht genau.

Ich habe es so verstanden, dass ich die Bilder mittels XML in einen MovieClip lade, dann lade ich den MovieClip mit der definierten Breite mit dem MovieClipLoader und pass mit bild._yscale = bild.xscale die Höhe an.
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 40
Geschlecht: Männlich
Verfasst Do 05.06.2008 00:12
Titel

Antworten mit Zitat Zum Seitenanfang

Nein pass up.

Du gehst als erstes hin, und lädst die XML-Daten. Wie in dem Tut was ich hier mal gepostet hab. Dann erzeuge ich ja in diesem Tut leere MovieClips, in die ich die Bilder, deren Infos ich auch der XML hab, per MovieClipLoader reinlade. Das machst Du auch alles Lächel

Im onLoadInit-Event des MovieClipLoaders gehst Du dann einfach hin und sagst dem Bild, wie breit es sein soll. Sagen wir mal, 250px.

Code:
Loader.onLoadInit = function(zielclip:MovieClip){
    zielclip._width = 250;
}



Jetzt hast Du schonmal alle Bilder in 250px breite. Sieht aber eigentlich auch scheisse aus, weil der ja jetzt das Bild verzerrt hat. Also muss Du ihm quasi sagen "Mach das Bild im selben Skalierungsverhältniss hoch wie es breit ist", sprich die Y-Skalierung muss gleich der X-Skalierung sein.

Code:
Loader.onLoadInit = function(zielclip:MovieClip){
    zielclip._width = 250;
    zielclip._yscale = zielclip._xscale
}
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Krisslinger
Threadersteller

Dabei seit: 21.04.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 05.06.2008 12:19
Titel

Antworten mit Zitat Zum Seitenanfang

So, sitz jetzt schon den ganzen morgen drann und versuch das auf die Reihe zu bekommen, leider erfolglos. Leider versteh ich einen größeren Teil von Flamings Tutorial nicht richtig. Da ist glaub ich, einiges an Zeugs drin, das ich nicht brauche für meinen Fall Außerdem würd ich das ganze Ding gern verstehen, und da sind manche Kommentare einfach zu knapp. Nur kopieren und die Bilder austauschen bringt mir nicht viel, irgendwann will ich es auch selber können. Bin leider noch recht frisch in ActionScript.

Bei meinem ersten Post hab ich ja auch das XML Tutorial von gotoandlearn.com erwähnt. Das kann ich auch nachvollziehen und bei mir klappt das reinladen per XML auch, allerdings mit dem Unterschied, dass der Autor des Tutorials lauter Bilder von fester Größe nimmt, und deswegen einfach auf der Bühne einen MovieClip erstellen kann in den er mit
Code:

instanzname_movieclip.loadMovie(urls[0]);

die Bilder reinladen kann.

Im ganzen sieht das so aus und das hab ich auch vor mir liegen:
Code:

var sp:XML = new XML();
sp.ignoreWhite = true;

var urls:Array = new Array();

sp.onLoad = function() {
   var bilder:Array = this.firstChild.childNodes;
   for(i=0; i<bilder.length; i++) {
         urls.push(bilder[i].attributes.url);
   }
   
   instanzname_movieclip.loadMovie(urls[0]);

}

sp.load("sp.xml");


Wie gesagt, werden in der oben genannten Zeile die Bilder in den vorhandenen MovieClip geladen. Wie schaffe ich es jetzt, diese Zeile so zu ersetzen, dass er mir für jedes Bild einen neuen MovieClip macht, das entsprechende Bild reinläd und die dann schön untereinander setzt?

Hier auch die XML, der Vollständigkeit halber:
Code:

<?xml version="1.0" encoding="utf-8"?>
<slideshow>
   <photo url="bild_1.jpg" />
   <photo url="bild_2.jpg" />
   <photo url="bild_3.jpg" />
   <photo url="bild_4.jpg" />
   <photo url="bild_5.jpg" />
   <photo url="bild_6.jpg" />
</slideshow>


Vielen Dank


Zuletzt bearbeitet von Krisslinger am Do 05.06.2008 12:24, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 40
Geschlecht: Männlich
Verfasst Do 05.06.2008 12:39
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
var loader:MovieClipLoader = new MovieClipLoader()
var listener:Object = new Object()
var pointer:Number = 0;
var urls:Array = new Array();
var sp:XML = new XML();
var ref:MovieClip = this;

sp.ignoreWhite = true;
sp.onLoad = function() {
   var bilder:Array = this.firstChild.childNodes;
   for(i=0; i<bilder.length; i++) {
         urls.push(bilder[i].attributes.url);
      
   }
   
   loadImage();

}



listener.onLoadInit = function(tgt:MovieClip){
   var lastImage:MovieClip = ref["bild" + (pointer-1)];
   tgt._y = lastImage._y + lastImage._height;
   pointer++;
   
   if(pointer < urls.length){
      loadImage()
   }
   
}

var loadImage:Function = function():Void {
   var bild:MovieClip = ref.createEmptyMovieClip("bild" + pointer, ref.getNextHighestDepth());
   loader.loadClip(urls[pointer], bild);
}


loader.addListener(listener);
sp.load("sp.xml");
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Krisslinger
Threadersteller

Dabei seit: 21.04.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 05.06.2008 13:00
Titel

Antworten mit Zitat Zum Seitenanfang

Vielen Dank, funktioniert *Thumbs up!*

Du hast mir diese und kommende Woche gerettet. Damit bist du für mindestens diesen Zeitraum mein Held. Allerdings nur rein platonisch und ohne Hintergedanken.

Einfach ne super Leistung die manche hier im Forum bringen. Ich schätze euch und eure Hilfe * Applaus, Applaus * * Applaus, Applaus * * Applaus, Applaus *
  View user's profile Private Nachricht senden
CoolGirl

Dabei seit: 09.09.2010
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 09.09.2010 17:43
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo phiHochZwei,

Deine Lösung finde ich auch klasse, war genau das, wonach ich verzweifelt gesucht habe! Nun möchte ich diese Gallerie aber in ein AS3-Projekt einbauen. Habe aber AS1/AS2 nicht darauf *Schnief*

Könntest du mir aushelfen und deinen Code in AS3 übersetzen? Das wäre sooo eine große Hilfe Mädchen!

Bitte.... bitte ... danke !!

Lieben Gruß
Loan
  View user's profile Private Nachricht senden
 
Ähnliche Themen Flash: Bilder (jpg) via XML laden, preloaden, anzeigen
Flash soll XML aus File im Web laden
XML Daten in Flash laden und als Tabelle ausgeben
JS aus XML für flash laden (der richtige Onklick= Befehl)
"Alle meine Kinder" oder mit XML dynamisch Bilder laden
Zufällig externe Bilder in Flash laden
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.