Slideshow und Pfade

Barzille

Grünschnabel
Hallo Leute,
mein Problem liegt in Folgendem:
Ich erstelle eine Webseite, auf der es unterschiedliche Diashows geben soll, entsprechend auf welcher Unterseite ich mich befinde.
Da das ganze auch noch per CMS veränderbar sein soll, habe ich für jeden Bereich eingene Ordner angelegt.

Meine Ordner Struktur:

/index.php

/imagesA/index.php
/imagesA/imagelist.php
/imagesA/ss.swf
/imagesA/*.jpg

/imagesB/index.php
/imagesB/imagelist.php
/imagesB/ss.swf.php
/imagesB/*.jpg


In jedem dieser Ordner befinden sich also Bilder, die ich über eine im jeweiligen Verzeichnis vorhandene Datei (imagelist.php) auslesen lasse, damit ich diese als Variablen in flash einlesen kann...

Zur Zeit ist es so, dass ich in den Verzeichnissen über index.php meine swf file anzeigen lassen kann. Soviel zum ersten Test...

Jetzt möchte ich aber gerne die swf's in der toplevel index.php anzeigen lassen. Habe schon gelesen, dass Pfade immer relativ vom aufrufenden Script einzutragen sind, aber da hapert bei mir das Programm!

Jetzt meine Fragen:
Was ist denn einfacher, ein ss.swf mit in den toplevel zu legen und den Pfad an das Flashfile übergeben, wenn ja wie geht das und was muss ich ändern?
Eleganter ist ja allemal nur ein File zu haben und nicht in jedem Verzeichnis :/

hier meine index.php im toplevel:
PHP:
 <object classid="clsid:-)27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="185" height="185">
      <param name="movie" value="imagesA/ss.swf">
      <param name="quality" value="high">
 <embed src="imagesA/ss.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="185" height="185"></embed>
    </object>

meine ss.swf

PHP:
  var lv = new LoadVars();
  var pictures = new Array(); // Array für die Bild-MCs
  var amt = 0; // Anzahl der Bilder
  
  var distance = 185; // horizontaler Abstand der Bilder
  var width = 205; // Neue Breite der Bilder
  var height = 185; // Neue Höhe der Bilder
  var spd = 1; // Bewegungsgeschwindigkeit (Pixel/Frame)
  var dispwidth = 185; // Breite des "Fensters"
  var z = 1;
  
  lv.load("imagelist.php");
  lv.onLoad = function() {
  	trace(this.toString());
  	loadPics(this);
  }
  
  function loadPics(obj) {
  	display.container._visible = false;
  	for (var i=1; i<= obj.anzahl; i++) {
  		// MovieClip erstellen:
  		pictures[i] = display.container.createEmptyMovieClip("pic" + i, i);
  		pictures[i].pic = pictures[i].createEmptyMovieClip("pic", 1);
  		// Bilddatei einladen
  		pictures[i].pic.loadMovie(obj["bild" + i]);
  	}
  	amt = obj.anzahl;
  	startLoad();
  }
  
  function startLoad() {
  	// Alle Bilder vorladen
  	var cur = 0;
  	var max = 0;
  	this.onEnterFrame = function() {
  		cur = 0;
  		max = 0;
  		all = true;
  		for (var i=1; i <= amt; i++) {
  			cur += pictures[i].pic.getBytesLoaded();
  			max += pictures[i].pic.getBytesTotal();
 			if (pictures[i].pic.getBytesLoaded() == 0 || pictures[i].pic.getBytesTotal() == 0) {
  				all = false;
  			}
  		}
  		trace("loading... " + cur + " of " + max);
  		if (cur >= max && all == true) {
  			startSlide(); // Slideshow beginnen
  		}
  	}
  }
  
  function startSlide() {
  	  delete this.onEnterFrame;
  	  for (var i=1; i <= amt; i++) {
  		  pictures[i]._x = 0;
  		  pictures[i]._y = 0;
  		  pictures[i].pic._width = width;
  		  pictures[i].pic._height = height;
  		  pictures[i]._visible = false;
  	  }
  	  display.container._visible = true;
  	  
  	  countup();
  	  setInterval(function(){countup();}, 2000);
    } 
  
  function countup() {
  	pictures[z]._visible = false;
  	if(z>=amt){
  		z = 1;
  	}
  	else{
  		z = z + 1;
  	}
  	pictures[z]._visible = true;
  }

Ich muss dazusagen, dass ich das Script aus einem Tutorial übernommen habe und an meine Bedrfnisse angepasst habe... Nur das mit den Pfadangaben klappt noch nicht!

Ich hoffe, ihr könnt mir helfen, Danke!

Gruß Maik
 
Nochmal,
also mal die ganze Frage in Kurz:
1. wie übergebe ich DIREKT an das swf einen Pfad?(also in der htmlseite wo auch <embed...> steht)
2. Kann man eine Fehlerausgabe im Browser erzwingen? Wenn ich das fehlerhafte swf im web ausführe bremst er den ganzen Browser aus :(
 
Hi,

ich würde die SWF-Dateien in das Hauptverzeichnis legen, und die Bilder aus den Unterordnern laden:
PHP:
lv.load("imagesA/imagelist.php");
Du kannst das gewünschte Verzeichnis z.B. mit FlashVars an den Film übergeben:
HTML:
<param name="flashvars" value="dir=imagesA" />
<emded ... flashvars="dir=imagesA" ... />
(ersteres im Object-Tag, letzteres im Embed-Tag.

Dann steht Dir die Variable "dir" in Flash zur Verfügung:
PHP:
lv.load(dir + "/imagelist.php");

Zu 2: ich weiß nicht genau, was Du meinst. Ich würde Laufzeitfehler flashseitig abfangen.

Gruß
.
 
Zurück