an die flash experten

Vollständige Seite anschauen…
Registriert
14. März 2002
Reaktionspunkte
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);
}
 
Vollständige Seite anschauen…
Datenschutzeinstellungen