Avatar billede slammer12 Nybegynder
12. december 2008 - 23:01

Knapper med frem/tilbage + Play og stop

Nedenstående script er fra www.flashforum.de. Det fungerer rigtigt godt, loader selv billeder ind fra mappen. Men det mangler start/stop og frem/tilbage knapper.
Min AS viden rækker ikke til at tilføje disse.
Er der nogen der har en ide?

---------------------------------------
// Die Klasse braucht den Code der LoaderClass
#include "LoaderClass.as"
// Erzeuge Instanz der Klasse
o = _global.PictureChangerClass=function () {
    if (arguments[0] == 'NO_INIT') {
        return;
    }
    this.init.apply(this, arguments);
};
//
o = o.prototype;
//
// initialisiere die Instanzeigenschaften
// und den Loader
o.init = function(showtimeMs, fadeStepMs, fadeStep) {
    this.showtimeMs = showtimeMs;
    this.fadeStepMs = fadeStepMs;
    this.fadeStep = fadeStep;
    //
    this.ui = null;
    this.actPic = 0;
    this.picList = null;
    //
    this.loader = new com.qlod.LoaderClass();
    this.loader.setMinSteps(5);
    this.loader.addListener(this);
};
//
// erzeuge die Movieclips für die Anzeige
o.createUI = function(base, name, depth, x, y) {
    this.ui = base.createEmptyMovieClip(name, depth);
    this.ui.createEmptyMovieClip("pic0", 0);
    this.ui.createEmptyMovieClip("pic1", 1);
    this.setPos(x, y);
};
//
// positioniere die Anzeige
o.setPos = function(x, y) {
    this.ui._x = -1;
    //x
    this.ui._y = 0;
    //y
};
//
// intialisiere die Bilderliste
o.setPicList = function(picList, directory) {
    this.picList = picList;
    this.directory = directory;
    this.actPic = -1;
    //0
};
//
// liefere den Mc, der aktuell sichtbar ist
o.getActPicMc = function() {
    return this.ui["pic"+this.actPic%2];
};
//
// liefere den Mc, der aktuell unsichtbar ist
o.getNextPicMc = function() {
    return this.ui["pic"+((this.actPic+1)%2)];
};
//
// wird vom Loader aufgerufen, wenn das Laden beginnt
// das neue Bild soll zunächst unsichtbar sein
o.onLoadStart = function(loaderObj) {
    this.getNextPicMc()._alpha = 0;
};
//
// wird vom Loader während des Ladens aufgerufen
// zeigt eine feine rote Linie als Ladeanzeige
o.onLoadProgress = function(loaderObj) {
    this.ui.clear();
    this.ui.moveTo(0, -1);
    this.ui.lineStyle(0, 0xff0000);
    this.ui.lineTo(Math.floor(loaderObj.getStepPercent()), -1);
};
//
// wird vom Loader aufgerufen, wenn das Laden endet
// die rote Linie wird gelöscht und die Blende gestartet
o.onLoadComplete = function(loaderObj) {
    this.ui.clear();
    this.startCrossFade();
};
//
// starte die Anzeigeschleife
o.start = function() {
    this.loadNextPic();
};
//
// stoppe die Anzeigeschleife
o.stop = function() {
    clearInterval(this.interval);
};
//
// starte die Überblendung
o.startCrossFade = function() {
    this.interval = setInterval(this, "onCrossfade", this.fadeStepMs);
};
//
// wird im Interval aufgerufen
// blende die Clips langsam ineinander über
o.onCrossfade = function() {
    var ap_mc = this.getactPicMc();
    var np_mc = this.getNextPicMc();
    ap_mc._alpha -= this.fadeStep;
    np_mc._alpha += this.fadeStep;
    if (ap_mc._alpha<=0 || np_mc._alpha>=100) {
        ap_mc._alpha = 0;
        np_mc._alpha = 100;
        clearInterval(this.interval);
        this.interval = setInterval(this, "onShow", this.showtimeMs);
    }
};
//
// wird im Interval aufgerufen
// zeige das nächste Bild
o.onShow = function() {
    clearInterval(this.interval);
    this.loadNextPic();
};
//
// lade das nächste Bild
o.loadNextPic = function() {
    this.actPic++;
    if (this.actPic>=this.picList.length) {
        this.actPic = 0;
    }
    this.loader.load(this.getNextPicMc(), this.getPicUrl());
};
//
// liefere die komplette Url des nächsten Bilds
o.getPicUrl = function() {
    var url = this.directory+this.picList[this.actPic];
    return url;
};
//
delete o;
//
// Das Hauptprogramm
// Erzeuge eine Instanz der neuen Klasse,
// initialisiere sie und starte die Bilderschleife
function main() {
    pc = new PictureChangerClass(2000, 50, 10);
    //2000 = 2 sek.
    pc.setPicList(["pic1.jpg", "pic2.jpg", "pic3.jpg", "pic4.jpg", "pic5.jpg", "pic6.jpg", "pic7.jpg", "pic8.jpg", "pic9.jpg", "pic10.jpg", "pic11.jpg", "pic12.jpg", "pic13.jpg", "pic14.jpg", "pic15.jpg", "pic16.jpg", "pic17.jpg", "pic18.jpg", "pic19.jpg", "pic20.jpg", "pic21.jpg", "pic22.jpg", "pic23.jpg", "pic24.jpg", "pic25.jpg", "pic26.jpg", "pic27.jpg", "pic28.jpg", "pic29.jpg", "pic30.jpg", "pic31.jpg", "pic32.jpg", "pic33.jpg", "pic34.jpg", "pic35.jpg", "pic36.jpg", "pic37.jpg", "pic38.jpg", "pic39.jpg", "pic40.jpg", "pic41.jpg", "pic42.jpg", "pic43.jpg", "pic44.jpg", "pic45.jpg", "pic46.jpg", "pic47.jpg", "pic48.jpg"]);
    //, "http://www.deineDomain.de/bilder/");
    pc.createUI(_root, "PictureChanger_mc", 1, 200, 150);
    pc.start();
}
//
main();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 06:10 Excel åbner fil i kæmpe format Af Aske i Excel
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat