Bild aus XML holen und Skalieren

filosophie

Mitglied
Guten Abend alle Zusammen,

ich habe da ein kleines Problem. Und zwar möchte ich, ein Banner machen in der die Bilder aus einem Ordner via XML in drei MCs geladen werden. Diese sollen möglichst in ein gewissen Abstand von ca. 10 Sekunden neue Bilder geladen werden.

Das andere ist das, siehe Bsp.,das jeweilige MC soll die anderen MCs wegdrücken beim Zoomen.

Vielleicht kann mir der ein oder andere Helfen, habe ein Bsp. reingestellt falls man mich nicht so richtig verstanden hat. Auch mein Bis dato Fortschritt.

Danke , Filosophie
 

Anhänge

  • banner.zip
    32,5 KB · Aufrufe: 28
Cool Danke von der Animation ist es genau wie ich es haben wollte.
Aber sag mal kann ich jetzt einzelne MCs via XML ansteuern.
Und das andere ist, wie kann ich das Bild innerhalb (wie eine Maske) des MC in der Y-Achse verschieben. wie in der Animation in dem Ordern den ich gezipt habe.

Danke schön luke-
 
Hallo,

nun, du könntest anhand einer XML-Datei eine dynamische Anzahl von Menü-Clips erstellen, müsstest dann einfach alle fest zugewiesenen Funktionalitäten in einer Schlaufe abarbeiten. Das mit den Bildern erreichst du, indem du als Anhaltspunkt für Skalierung und Positionierung nicht den MovieClip an und für sich wählst, sondern eine Maske.

Gruss
 
Klappt leider nicht

ich gebe es auf. Jetzt passiert da ein ganz komischer Fehler. Ich habe es mal probiert die Bilder innerhalb vom MC rein zupacken + einer Maske. Und da passiert dieser Fehler siehe Anhang. Vielleicht weißt du ein Rat wie das geht. könntest du dir das mal angucken bitte, Luke. Vielen Dank im voraus, filo.
 

Anhänge

  • banner2.zip
    659,3 KB · Aufrufe: 17
Hallo,

hab das mal ein wenig aufgefrischt, auch weil das Skript aus dem Uralt-Beispiel ziemlich verfahren ist. Im Anhang findest du einen Ansatz mit Masken.

Gruss
 

Anhänge

  • banner.zip
    611,1 KB · Aufrufe: 39
Luke echt klasse das Tool, ich wünscht das ich bald auch so programmieren kann wie du. Echt cool. Das Skript habe ich verstanden bzw. konnte ich nachvollziehen, aber was ich nicht hin bekommen habe das mit der XML Datei. er lädt die Bilder nicht, mache ich da was falsch. Ich habe dort wo du bild1, bild2, bild3 reingeschrieben hast, die XML rein geladen nur leider geht es nicht. Was muss man den beachten bei dieser Sache habe ich vielleicht den flaschen Clip angesprochen. Könntest du mir bei dieser Letzten Sache helfen, das wäre sehr nett Luke.

Danke im voraus Luke und schönen Abend noch, Filosophie
 
Hallo,

nun, bei meinem Beispiel werden in der Bibliothek verlinkte MovieClips angesprochen, das ist ja mal sehr undynamisch und auch nicht im Sinner eines externen XML-Datensatzes. Wenn du nun nur einen dieser drei Clips exportierst und auch nur den jeweils attachst, dem Clip jedoch per XML z.B. eine Url für ein Bild mitgibst, welches du nachher im Clip lädst, sollte das hinhauen. Wie du deine XML-Struktur aufbaust, ist dir überlassen.

Gruss
 
Luke sagmal hast du ein Bsp. wie ich das einbauen kann. Weil so ganz verstehe ich das nicht mit dem exportiren nicht. Ich soll den Clip als SWF abspeichern und dann…das mit dem attachst!? Wie muss man den Script dann ändern?

LG
 
Hallo,

gehen wir mal von einem beliebigen XML-File aus, z.B. so:

Code:
<?xml version="1.0" encoding="utf-8"?>
<root>
	<bild url="pics/bild1.jpg" />
	<bild url="pics/bild2.jpg" />
	<bild url="pics/bild3.jpg" />
	<bild url="pics/bild4.jpg" />
</root>

Du löschst sämtliche Clips und Bilder ausser den jeweils ersten und passt den Exportnamen des Clips auf "clip" an.
Nun musst du die XML-Daten in Flash verfügbar machen (siehe XML in der Flash-Referenz). Per onLoad rufst du nun z.B. eine modifizierte Version der attachClips-Funktion auf, mit dem XML-Objekt als Parameter:
Code:
function attachClips (a_xm: XML): Void {
	var mc: MovieClip, i: Number, x: Number, oldMC: MovieClip;
	
	container = this.createEmptyMovieClip("container", 0);
	container._x = CONTAINER_X;
	container._y = CONTAINER_Y;
	
	x = 0;
	for (var i: Number = 0; i < xm.firstChild.childNodes.length; i++) {
		mc = container.attachMovie("clip", "menu"+i, i, {_x: x, path: xm.firstChild.childNodes[i].attributes.url});
		mc.mask._width = CLIP_WIDTH;
		mc.mask._height = CLIP_HEIGHT;
		mc.onRollOver = function () {
			this._parent._parent.arrangeClips(this);
		}
		mc.onRollOut = mc.onDragOut = function () {
			this._parent._parent.arrangeClips();
		}
		//Anstatt alle Clips in ein Array zu speichern, verwende ich das LinkedList-Prinzip: Jeder Clip verweist auf den nächsten
		if (!firstItem) firstItem = mc;
		oldMc.nextItem = mc;
		oldMc = mc;
		
		x += CLIP_WIDTH;
	}
}

Nun wechselst du in den letzten Bild-Clip, löschst das Bild, wechselst in den letzten Clip-Clip (;)) und setzt folgenden Code dahin:
Code:
var path: String;
picture.loadMovie(path);

gruss
 

Neue Beiträge

Zurück