Codeanpassung auf Version 8

gankli

Mitglied
Hallo Zusammen,

ich habe hier ein ActionScript1 von Flash 6 für eine Bildergalerie. Dieses möchte ich nun in der Flash Version 8 mit ActionScript2 nutzen. Was muss ich alles ändern? Unter FlashPlayer 6 und ActionScript1 funktioniert es einwandfrei. Unter Flashplayer8 und ActionScript2 wird zwar alles geladen ich kann die Bilderschaltflächen nicht anklicken.

Hier der Code:

Code:
Stage.showMenu = false;
movieclip.prototype.ladeBild = function(obj, img, posx, posy) {
	obj.loadMovie(img);
	obj._x = 196.6;
	obj._y = 52.5;
};
movieclip.prototype.ladeStatus = function(lobj, ausT, ausL, balken) {
	this[ausT] = lobj.getBytesTotal();
	this[ausL] = lobj.getBytesLoaded();
	this.prozent = lobj.getBytesLoaded()*100/lobj.getBytesTotal();
	balken._xscale = this.prozent;
	this.auspro = int(this.prozent)+"%";
};
stop();

Danke und Gruß
gankli
 
Hallo,

da Actionscript 2.0 auf die Syntax der Klassennamen achtet, musst du "movieclip" mit "MovieClip" ersetzen.

gruss
 
Zuletzt bearbeitet:
Hallo,

vielen Dank für die sehr schnelle Antwort. Hat wunderbar funktioniert. Habe noch eine Frage.

Wie kann ich diesen Code erweitern, das wenn ich die Schaltfläche kleines Bild klicke und dann im Container das große Bild gezeigt wird, ich auf das große Bild klicke (wenn möglich per rechtsklick und das context menü um den Eintrag Bild downloaden erweitern) und dieses im neuen Fenster in Originalgröße angezeigt wird.

Vielen Dank.
Gruß
gankli
 
Hi,

dazu müsstest Du Deine Datei einmal posten. Der Code enthält nichts, was eine "Schaltfläche kleines Bild", "Container" etc. betrifft. ;)

Gruß
.
 
Hallo,

ersetze die erste prototype-Funktion durch das hier:
Code:
MovieClip.prototype.ladeBild = function(obj, img, posx, posy) {
	
	obj.createEmptyMovieClip ("ct", 0);
	obj.ct.loadMovie(img);
	obj._x = 196.6;
	obj._y = 52.5;

	obj.onRelease = function () {
		getURL (img, "_blank");
	}
};

gruss
 
Hallo,

funktioniert wunderbar.

Kann man den Code noch um die Höhe und Breite des Bildes ergänzen. Ich habe nämlich die Bilder so verkleinert, dass diese genau in das Kästchen passsen. Nur wenn ich dann das Bild im neuen Fenster öffne, greift er natürlich auf das normale Bild zurück. Die Bilder sollen die Originalgröße behalten (2592pixel x 1944pixel) und in der Galerie nur mit einer Größe von 363 x 272 geladen werden. Wo muss ich dann die Höhen und Breitenangaben hinzufügen. Und wird das Bild dann in der Größe verkleinert?

Hier der Code:

Code:
MovieClip.prototype.ladeBild = function(obj, img, posx, posy) {
	
	obj.createEmptyMovieClip ("ct", 0);
	obj.ct.loadMovie(img);
	obj._x = 196.6;
	obj._y = 52.5;

	obj.onRelease = function () {
		getURL (img, "_blank");
	}
};

Kann man auch noch zusätzlich ein MouseOver über den Kasten oder das Bild setzen, in dem steht: Bild in Originalgröße bitte einmal klicken.

Funktioniert doch nicht alles. Der Ladebalken funktioniert nicht.

Vielen Dank
Gruß
Rene
 
Zuletzt bearbeitet:
Hallo,

du kannst die Höhe und Breite des Bild-Containers beliebig anpassen, das einzig Trickreiche daran ist, dass du das erst tun kannst, wenn dein Bild komplett geladen ist. Da dein Film in Flash 8 erstellt wurde, empfehl ich dir die Verwendung der MovieClipLoader-Klasse, die den Status eines Ladevorgangs gut wiedergibt.
Wie genau du die Bilder skalierst, ist dir überlassen. Mit _xscale und _yscale wird das ursprüngliche Seitenverhältnis beibehalten, mit _width und _height kannst du absolute Pixelwerte angeben.
Ich empfehle dir, auch wenn es einen gewissen Mehraufwand mit sich bringt, die Bilder nicht in Flash zu skalieren sondern so im Internet abzulegen, wie du sie im FlashPlayer angezeigt haben möchtest, weil in Flash skalierte Bilder doch qualitativ recht unansehnlich sind. Alternativ dazu könntest du den Bildern ja immer noch die URL zum (riesigen) Originalformat mitgeben.

Der Preloader sollte so wieder funktionieren:

Code:
MovieClip.prototype.ladeStatus = function(lobj, ausT, ausL, balken) {
	this[ausT] = lobj.ct.getBytesTotal();
	this[ausL] = lobj.ct.getBytesLoaded();
	this.prozent = this[ausT]*100/this[ausL];
	balken._xscale = this.prozent;
	this.auspro = int(this.prozent)+"%";
};

gruss
 
Hallo,

der Preloader sieht jetzt komisch aus. Der Balken ist dreimal so lang und verringert sich dann auf 2/3 der Größe der Rest bleibt stehen.
 
Zurück