FlashPlayer9 Problem

pat_morita

Mitglied
Hi,

ich hab eine wunderbare dynamische Bilddatenbank per XML in Flash eingebaut.
Wenn ich meine Seite Lokal mit FlashPlayer 6 teste... astrein. Wegen einiger Grafikeffekte bin ich aber auf den neueren Player angewiesen. Ergo muß es am Skript liegen. Aber woran genau
Auch der lokale Test mit dem neuen Flashplayer verweigert plötzlich den Dienst...OO ?

Die Bilder liegen in einem Unterordner "Bilder". Die Pfade (relativ) sowie Dateinamen etc. verraten die Bilddaten.xml.

Hier die zwei relevanten Skripte:

Das Skript auf der TImeline:

PHP:
// XML-Objekt erzeugen (Bezeichner: mein_xml)
mein_xml = new XML();

// Störende Leerzeichen ignorieren
mein_xml.ignoreWhite = true;

// XML-Datei einlesen 
mein_xml.load("bilddaten.xml");

// Lesevorgang 
mein_xml.onLoad = function(status) {
	if (status && this.loaded) {
	anzahl = mein_xml.firstChild.childNodes.length;
	geladen = true;
	aktbild = 0;
	ladeBild(aktBild);
	}
};

// Funktion, welche die Daten der XML-Datei verarbeitet
function ladeBild(paktBild) {
	status_mc._visible = 1;
	bild = mein_xml.firstChild.childNodes[paktBild].attributes.pic;
	bildname = mein_xml.firstChild.childNodes[paktBild].attributes.name;
	loadMovie(bild, "bild_mc");
	titel_txt.text = bildname;
}

// Weiter Schalter
weiter_btn.onRelease = function() {
	if (geladen && aktbild<anzahl-1) {
		aktbild++;
		ladeBild(aktBild);
	}
};

// Zurück Schalter
zuruck_btn.onRelease = function() {
	if (geladen && aktbild>0) {
		aktbild--;
		ladeBild(aktBild);
	}
};
stop();

und das auf meinem Bildcontainer (bild_mc)

PHP:
onClipEvent (enterFrame) {
	if (this._url != this._parent._url && !this.loaded) {
		var kilobytes = Math.ceil(this.getBytesTotal()/1024);
		var prozent = Math.ceil((this.getBytesLoaded()/this.getBytesTotal())*100);
		this._parent.counter_txt.text = "Lade "+prozent+"% of "+kilobytes+"k";
//		this._parent.loading_txt.text = "Bild wird geladen - Bitte warten!";
		this._parent.status_mc._width = prozent*2;
		if (prozent == 100) {
			i++;
			if (i == 20) {
				this.loaded = true;
				this._parent.counter_txt.text = "";
//				this._parent.loading_txt.text = "";
				this._parent.status_mc._visible = 0;
				delete i; 
			}
		}
	}
}


Könnte es was mit den URL geschichten zu tun haben? Wenn ja, wie am einfachsten lösen?

lg Pat..
 
Häufige Gründe, warum ein Film in neureen Flashplayern den Dienst versagt, sind:
  • Fehlerhafte Groß- und Kleinschreibung. Dem Flashplayer6 wars egal, ob Du
Code:
getbytesloaded()
oder
Code:
getBytesLoaded()
schreibst.

Ich kann in Deinem Code auf den ersten Blick zwar solche Fehler nicht entdecken, aber schau doch noch mal drüber, ob z.B. irgendein Schlüsselwort nicht blau eingefärbt wird.


  • Fehlende Variablendeklaration. Im Flashplayer6 kannst Du so etwas schreiben:
Code:
i ++;

trace(i);
Es wird "1" ausgegeben, da bei nicht definierten Variablen der Standardwert 0 automatisch gesetzt wird. In neueren Playern wird "undefined" ausgegeben, da die Variable "i" nicht definiert ist. Du müsstest es so notieren:
Code:
var i = 0;

i ++;

trace(i);

In Deinem zweiten Codeblock (onEnterFrame-Methode) wird z.B. die Variable "i" nicht mit dem Schlüsselwort "i" deklariert.

Gruß
.
 
Hm stimmt, das mit der Großschreibung hatten wir schonmal. Hab den Code dahingehend überprüft, alles OK.

hm, muß an was anderem liegen. Er kommt glaub ich noch nichtmal bis zur variable i.

hab mir mal die Fehlermeldung angesehen:

PHP:
Error opening URL 'file:///System/Users/besitzer/Desktop/Website/undefined

muß ja an der URL Anweisung liegen oder?

ich hab die Funktion mal abgeändert, aber da er mir für i nichts ausspuckt, muß ja vorher der Haken liegen?

PHP:
onClipEvent (enterFrame) {
	if (this._url != this._parent._url && !this.loaded) {
		var kilobytes = Math.ceil(this.getBytesTotal()/1024);
		var prozent = Math.ceil((this.getBytesLoaded()/this.getBytesTotal())*100);
		this._parent.counter_txt.text = "Lade "+prozent+"% of "+kilobytes+"k";
//		this._parent.loading_txt.text = "Bild wird geladen - Bitte warten!";
		this._parent.status_mc._width = prozent*2;
		if (prozent == 100) {
			var i = 0;
			i++;
			trace (i);
			if (i == 20) {
				this.loaded = true;
				this._parent.counter_txt.text = "";
//				this._parent.loading_txt.text = "";
				this._parent.status_mc._visible = 0;
				delete i; 
			}
		}
	}
}

edit:

argl, muß ich etwa die Vars im ersten Block (siehe erster Post) auch so deklarieren:

PHP:
// XML-Objekt erzeugen (Bezeichner: mein_xml) 
mein_xml = new XML();
wird zu
PHP:
// XML-Objekt erzeugen (Bezeichner: mein_xml) 
var mein_xml;
mein_xml = new XML();
?

lieben Gruß, Pat
 
Zuletzt bearbeitet:
Hi,

in den Fall scheint es so, als ob die Variable "bild" nicht korrekt aus dem XML-Objekt extrahiert werdeb kann.

Poste bitte einmal Deine Quelldatei (und die dazugehörige XML-Datei), damit ich dem Problem auf den Grund gehen kann.

Gruß
.
 
super, vielen Dnak schonmal im vorraus.

Ich hab die Datei auf's Wesentliche heruntergebrochen, damits einfach zu verstehen ist.
Am besten zeigt sich das was ich meine wenn du mal für den 6er bzw 9er Player exportierst.

lg Pat
 

Anhänge

  • testfile.fla
    42,5 KB · Aufrufe: 39
Zuletzt bearbeitet:
hm, xml kann man wohl nicht anhängen?

Der Inhalt der bilddaten.xml ist folgender

PHP:
<?xml version"1.0"?>
<Bilder>
<Bild name="testbild-1" pic="bilder/bild1.jpg"></Bild>
<Bild name="testbild-2" pic="bilder/bild2.jpg"></Bild>
<Bild name="testbild-3" pic="bilder/bild3.jpg"></Bild>
</Bilder>

lg, Pat
 
Guten morgen!

Ich hab gestern noch einige Dinge gefunden, die sich anscheinend mit dem 9er Player nicht vertragen. Beispielsweise hat er ein Problem damit, wenn ich den Namen der Bilder aus der XML auslesen will. Aufgrund der farbigen Markierung von "name" im Code sieht er das wohl als teil des Codes. Wenn ich name in Name umbenenne scheints zu gehen. Aber der Rest funktioniert immer noch nicht. So ein Mist :)
Auf dem 6er läufts ja gut.

PHP:
  bildname = mein_xml.firstChild.childNodes[paktBild].attributes.name;
 
Hi,

"name" ist in der Tat ein reserviertes Wort vieler Klassen - als Bezeichner eines XML-Attributes habe ich unter Flashplayer 9 jedoch noch nie Probleme gehabt.

Deine Datei kann ich nicht öffnen, da sie anscheinend für Flash 9 veröffentlicht wurde (ich würde empfehlen, Quelldateien hier im Forum immer für Version 8 zu speichern, bis Version 9 hinreichend verbreitet ist).

Gruß
.
 
Hi,

"name" ist in der Tat ein reserviertes Wort - als Bezeichner eines XML-Attributes habe ich unter Flashplayer 9 jedoch noch nie Probleme gehabt.

Deine Datei kann ich nicht öffnen, da sie anscheinend für Flash 9 veröffentlicht wurde (ich würde empfehlen, Quelldateien hier im Forum immer für Version 8 zu speichern, bis Version 9 hinreichend verbreitet ist).

Gruß

P.S.: Hast Du schon mal probiert, den Film für Flashplayer 8 zu veröffentlichen?
.
 
oha. Ok, ich werd's heute abend als Fla 8 abspeichern wenn ich wieder zuhause bin. Ich würd dich dann nochmal anschreiben.

Ja, auch als 8er geht's nicht (7-9 geht nicht), 6er schon, aber der kann so einige grafische effekte eben nicht, die ich brauche. :/

liebe Grüße, Pat

ps.: mal ne ganz blöde Frage (weil ich noch nie damit so richtig gearbeitet habe).. XML ist doch einfach nur ne Textdatei oder? Weil ich letztens was anderes gelesen hab und dadurch "leicht" verunsichert bin.
 

Neue Beiträge

Zurück