Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-08-2006, 08:41   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
Externen Link über XML in Flash Banner pflegen, aber wie?! Need help!!!

Hallo Freunde,

ich programmiere gerade für eine Seite einen Flash-Banner, der über eine XML-Datei gefüttert wird. Sprich: Ich gebe in der XML Datei an, wo sich die Bilddatei befindet.

Nun will ich zusätzlich noch auf das Bild einen Link legen, der seine URL ebenfalls über die XML Datei bekommt.

Ich weiß leider nicht, wie ich das anstellen kann... Könnt ihr schlauen Jungs und Mädels mir helfen?

Vielen vielen Dank im Voraus!

P.S.: Ich habe bereits in diversen Foren nach Antworten gesucht, aber die Antworten, die ich gefunden habe waren nicht ausreichend... meine FLA hängt an.
Angehängte Dateien
Dateityp: zip banner-test.zip (37,0 KB, 5x aufgerufen)
Hennebo ist offline   Mit Zitat antworten
Alt 10-08-2006, 09:01   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Zitat:
Zitat von Hennebo
ich programmiere gerade für eine Seite einen Flash-Banner,
Läuft der Banner dann über nen Ad-Server? Oder ist das ne private Veranstaltung?

Einfach den Link in die XML dazu, im Flash in eine Variable schreiben und die per Schaltfläche dann auslesen ... die liegt komplett über dem ganzen Film.

ActionScript:
  1. on(release) {
  2. getURL(_root.clicktag, "_blank");
  3. }

Wie eben mit Deinem Bild auch ... versteh nicht ganz warum das mit dem Link hingegen so ein großes Problem ist

--pp

Geändert von ~pyropete~ (10-08-2006 um 09:02 Uhr)
~pyropete~ ist offline   Mit Zitat antworten
Alt 10-08-2006, 09:30   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
Hey...
erstmal vielen Dank für deine Antwort... die ganze Geschichte ist privat für mich... keine Ad-Banner Geschichte.

ich habe es versucht mit deiner Variable in Flash und den Änderungen in der XML. Datei habe ich angehängt... aber es funktioniert nicht...


wieso nur?

=(

Lg, H
Angehängte Dateien
Dateityp: zip banner-test2.zip (36,9 KB, 3x aufgerufen)
Hennebo ist offline   Mit Zitat antworten
Alt 10-08-2006, 10:17   #4 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Ich habe hier grad kein 8ter ... kannst Du den Code posten? Oder mal für MX 2004 speichern?

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 10-08-2006, 10:27   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
Zitat:
Zitat von ~pyropete~
Ich habe hier grad kein 8ter ... kannst Du den Code posten? Oder mal für MX 2004 speichern?

--pp
Code:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		//declare image and description as array
		image = [];
		description = [];
		link = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			//image[i] will store value from the inner tag <image>XXXX</image>
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			//description[i] will store value from the inner tag <caption>XXXX</caption>
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
			//link[i] will store value from the inner tag <link>XXXX</link>
            link[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
		}
		firstImage();
	} else {
		content.text = "file not loaded!";
	}
}
xmlAlbum = new XML();
xmlAlbum.ignoreWhite = true;
xmlAlbum.onLoad = loadXML;
xmlAlbum.load("banner.xml");
p=0;
function nextImage() {
	if (p<(total-1)) {
		p++;
		photo_mc.loadPhoto(image[p]);
		content.text = description[p];	
	}
}
function prevImage() {
	if (p>0) {
		p--;
		photo_mc.loadPhoto(image[p]);
		content.text = description[p];
	}
}
function firstImage() {
	photo_mc.loadPhoto(image[0]);
	content.text = description[0];
	
}
Hennebo ist offline   Mit Zitat antworten
Alt 10-08-2006, 12:17   #6 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Code:
function nextImage() {
	if (p<(total-1)) {
		p++;
		photo_mc.loadMovie(image[p]); //Probier mal das, musste in den übrigen auch noch ändern
		content.text = description[p];	
	}
}
loadPhoto gibt's nicht, sondern nur loadMovie();

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 10-08-2006, 12:54   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
also das mit "load Movie" ist richtig... hat hier aber nichts zu suchen...

ich poste mal den kompletten Code, der sich in 2 verschiedenen frames befindet..


---

Teil 1:
Code:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		//declare image and description as array
		image = [];
		description = [];
		link = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			//image[i] will store value from the inner tag <image>XXXX</image>
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			//description[i] will store value from the inner tag <caption>XXXX</caption>
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
			//link[i] will store value from the inner tag <link>XXXX</link>
            link[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
		}
		firstImage();
	} else {
		content.text = "file not loaded!";
	}
}
xmlAlbum = new XML();
xmlAlbum.ignoreWhite = true;
xmlAlbum.onLoad = loadXML;
xmlAlbum.load("banner.xml");
p=0;
function nextImage() {
	if (p<(total-1)) {
		p++;
		photo_mc.loadphoto(image[p]);
		content.text = description[p];	
	}
}
function prevImage() {
	if (p>0) {
		p--;
		photo_mc.loadphoto(image[p]);
		content.text = description[p];
	}
}
function firstImage() {
	photo_mc.loadphoto(image[0]);
	content.text = description[0];
	
}

Und Teil 2:

Code:
space = 10;
photo_mc._alpha = 0;

MovieClip.prototype.loadPhoto = function(photo){
	photo_mc._alpha = 0;
	this.loadMovie(photo);
	_level0.onEnterFrame = function(){
		// modified the total and loaded so as to round it up
		// to smaller number.
		var total = Math.round(photo_mc.getBytesTotal()/1024);
		var loaded = Math.round(photo_mc.getBytesLoaded()/1024);
		if (total != 0 && loaded>=total){
			var w = photo_mc._width + space;
			var h = photo_mc._height + space;
			border.resize(w, h);
			delete this.onEnterFrame;
		}
	}
};
MovieClip.prototype.resize = function(w, h){
	//the higher the slower the resize of the border
	var speed = 4;
	this.onEnterFrame = function(){
		this._width += (w - this._width)/speed;
		this._height += (h - this._height)/speed;
		if( Math.abs(this._width-w)<1 && Math.abs(this._height-h)<1){
			this._width = w;
			this._height = h;
			photo_mc._x = this._x - this._width/2 + space/2;
			photo_mc._y = this._y - this._height/2 + space/2;
			photo_mc._alpha = 100;
			delete this.onEnterFrame;
			
			


		}
	}
};
btn1.onRelease = function() {
	prevImage();
};
btn2.onRelease = function() {
	nextImage();	
	
};
soweit von mir...

Viele Grüße,

Hennebo
Hennebo ist offline   Mit Zitat antworten
Alt 10-08-2006, 13:12   #8 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Mit prototypes kenne ich mich nicht so aus, aber müsste es korrekt nicht so sein:


Code:
MovieClip.prototype.loadPhoto = function(photo){
	this._alpha = 0;
	this.loadMovie(photo);
	this.onEnterFrame = function(){
		// modified the total and loaded so as to round it up
		// to smaller number.
		var total = Math.round(this.getBytesTotal()/1024);
		var loaded = Math.round(this.getBytesLoaded()/1024);
		if (total != 0 && loaded>=total){
			var w = this._width + space;
			var h = this._height + space;
			border.resize(w, h);
			delete this.onEnterFrame;
		}
	}
};
Eine direkte Referenzierung auf den photo_mc ist doch eigentlich nicht nötig, da es sich um einen Prototyp handelt, den man an jeden bel. Clip anfügen kann... afaik ...

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 10-08-2006, 13:21   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
Najaaaa... aaalso... aber es funktionier ja alles... ich will ja nur wissen, wie ich das mit dem externen Link über die XML mache... wo liegt mein Fehler...
der Rest ist ja erstmal egal...

kannst du mir (oder jemand anderes) dabei helfen?

P.S.: Eure Band seite ist klasse... und die Musik geht gut ab...! Sehr cool!
Hennebo ist offline   Mit Zitat antworten
Alt 10-08-2006, 14:16   #10 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Also, Du siehst nur kein Bild? Der Rest wird aber geladen?
Arrays mal getraced?
Eventuell müsstest Du die Werte in die Arrays pushen,
und probier mal eine relative Pfadangabe zum Bild in der XML, keine absolute, falls Du das nicht schon gemacht hast.

Zum push-Befehl

Code:
link[i].push(xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue);
Ausm Kopp, kann also falsch sein, am besten nochmal nachschlagen.

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 10-08-2006, 14:29   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
doch... Bild wird auch angezeigt.... wie gesagt...

es funktioniert lediglich nicht, dass ich über das Banner den Link aus der XML Datei lege und dieser bei klick aufgerufen wird.

bist du denn sicher, dass der Button (der quasi über die komplette Größe des Banners liegt) wie folgt programmiert wird:

Code:
on (release) {

	//Goto Webpage Behavior
	getURL("_root.clicktag","_self");
	//End Behavior

}
Hennebo ist offline   Mit Zitat antworten
Alt 10-08-2006, 16:22   #12 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
_root.clicktag war ein Beispiel, wobei clicktag eine Variable ist die außerhalb der swf gesetzt wird, aber das braucht man nur bei adservern.

Hm, der Button sollte so eigentlich funzen

ActionScript:
  1. on(release) {
  2. getURL(_root.link[0], "_self"); // für's erste Bild
  3. }

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 10-08-2006, 16:45   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 7
Thumbs up

Jaa... juhuuu... nun geht es!!! Ich hatte noch eine Zeile im Quelltext vergessen... und zusammen mit deiner Hilfestellung hat es letztendlich funktioniert...

vielen Dank für die Hilfe!
Hennebo 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 09:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele