an die flash experten

Dabei seit
14. März 2002
Punkte Reaktionen
2
Ort
Reutlingen
Hallole,
hab da unten stehenden Code im Netz gefunden. Dieser tut zufällig Bilder die mir ein php-Skript als XML-Gerüst übergibt ein/ausblenden. Das funktioniert soweit. Mein Gedanke jetzt: das ganze als Banner nutzen, welcher durch anklicken auf die zum eingeblendeten Sponsorbild gehörige URL verlinkt. Die XML-Datei bekomm ich selbst hin, dagegen das zufügen der funktion zum klicken in Flash nicht :( kann da jemand weiter helfen oder sollte ich doch lieber in ein Flash Forum wandern :)

xml jetzt
Code:
<img picture="bilder/bild1.jpg"/>
<img picture="bilder/bild2.jpg"/>
<img picture="bilder/bild3.jpg"/>
xml wunsch
Code:
<sponsor>
    <bild>images/bild1.jpg</bild>
    <url>http://www.mtb-news.de</url>
</sponsor>
<sponsor>
    <bild>images/bild2.jpg</bild>
    <url>http://www.google.de</url>
</sponsor>
PHP:
var pic = new Array();
var current = 0;
var loaded = 0;
var IV = 0;

var centerX = 410; // Mittelpunkt der Bühne!
var centerY = 50;

var timeout = 2000; // Zeit zwischen den Bildern!

var xm = new XML();
xm.ignoreWhite = true;

xm.load("pictures.xml");

xm.onLoad = function() {
    parse(this);
}

function parse(obj) {
    for (var i=0; i<obj.childNodes.length; i++) {
        pic[i] = this.createEmptyMovieClip("pic" + i, i + 512);
        pic[i].ct = pic[i].createEmptyMovieClip("ct", 1);
        pic[i]._alpha = 0;
        pic[i].nr = i;
        pic[i]._x = centerX;
        pic[i]._y = centerY;
        pic[i].go = function() { // Einblenden
            this.onEnterFrame = function() {
                this._alpha += (100 - this._alpha) / 4;
                if (this._alpha >= 98) {
                    this._alpha = 100;
                    this._parent.nextPic(this.nr);
                    // ruft Funktion zum Anzeigen des
                    // nächsten Bildes auf
                    delete this.onEnterFrame;
                }
            }
        }
        pic[i].hold = function() { // Ausblenden
            this.onEnterFrame = function() {
                this._alpha += (0 - this._alpha) / 4;
                if (this._alpha <= 2) {
                    this._alpha = 0;
                    delete this.onEnterFrame;
                }
            }
        }
        pic[i].ct.loadMovie(obj.childNodes[i].attributes.picture);
        pic[i].onEnterFrame = function() {
            if (this.ct._width > 10 && this.ct._height > 10) {
                this.ct._x = -this.ct._width / 2;
                this.ct._y = -this.ct._height / 2;
                this._parent.nextLoaded();
                delete this.onEnterFrame;
            }
        }
    }
}

function showPic(nr) { // Blendet ein Bild ein
    clearInterval(IV);
    if (current != nr) {
        for (var i=0; i<pic.length; i++) {
            if (nr != i) {
                pic[i].hold();
            } else {
                pic[i].go();
                current = i;
            }
        }
    }
}

function nextLoaded() {
    loaded ++;
    if (loaded >= pic.length) randPic();
}

function nextPic(nr) { // Blendet ein zufälliges Bild verzögert ein
    clearInterval(IV);
    do {
        var v = int(Math.random() * pic.length);
    } while (v == nr);
    IV = setInterval(function() { showPic(v); }, timeout);
}

function randPic() { // Blendet ein zufälliges Bild ein
    clearInterval(IV);
    do {
        var v = int(Math.random() * pic.length);
    } while (v == current);
    showPic(v);
}
 
Oben