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();