absolute und nicht relative Skalierung?

Phr34k

Mitglied
Hallo,

ich wollte mir jetzt mal eine kleine Gallery erstellen und da muss man ja logischerweise die Bilder, die man läd skalieren. Und da kam ich auf folgendes Problem:

Ich gebe so ein
Code:
xxx._width = 50;
und der skaliert mir das Bild auf 50%!

Kann mir jemand helfen Ich stell mal den source hier rein....

Code:
while (i < _root.picanzahl) {
	attachMovie(1, "pic" + i, i); 
	_root["pic" + i]._x = i * 100;
	_root["pic" + i]._y = 50;
	_root["pic" + i].loadMovie(folder + i + ".jpg");
	_root["pic" + i]._width = 10;
	_root["pic" + i]._height = 10;
	i++;
}
 
Hi,

prozentual geht so:
PHP:
_root["pic" + i]._xscale = 50;
_root["pic" + i]._yscale = 50;

.. obwohl sich das auch über _width und _height simulieren lässt:
PHP:
_root["pic" + i]._width /= 2;
_root["pic" + i]._height /= 2;

Gruß
.
 
Ja schon klar, aber bei mir macht der das irgendwie automatisch relativ (bzw. prozentual). und ich möchte gern, dass der das absolut macht.

Vielen Dank
 
hmm.. sollte er eigentlich nicht.

Generell musst Du aber darauf warten, bis das Bild komplett geladen ist, bevor Du ihm eine neue Größe zuweisen kannst:
PHP:
bla.loadMovie("bild.jpg");
this.onEnterFrame = function() {
    if(bla._width > 10 && bla._height > 10) {
        // dann ist es geladen
        bla._width = 50;
        bla._height = 30;
        delete this.onEnterFrame;
    }
}

Gruß
.
 
Das raff ich jetzt ned... Sorry, ich bin noch totaler Anfänger

Ich kann ja mal die Datei anhängen, vielleicht verstehst dus dann besser, oder kannst mir irgendwie helfen!?

Danke schon mal vorweg
 

Anhänge

  • 001.zip
    11,1 KB · Aufrufe: 16
Zuletzt bearbeitet:
Guck mal in meiner Signatur das Tutorial. Ist seit heute online und es wird genau so eine Galerie erstellt :) Vielleicht schaust du dir mal die Beispiel-Datei an (ist am Ende des Tuts) und guckst wie es da glöst ist, oder liest dir kurz den Tutorial durch...
 
Hi,

auf die Schnelle ginge das z.B. so:
PHP:
while (i <= _root.picanzahl) {
	attachMovie(1, "pic" + i, i); 
	_root["pic" + i].movie = folder + i + ".jpg";
	_root["pic" + i]._x = 645;
	_root["pic" + i]._y = -75 + i * 130;
	_root["pic" + i].w = 100;
	_root["pic" + i].h = 100;
	i++;
}
statt loadMovie aufzurufen, übergibst Du dem Clip die URL als String sowie zwei Variablen für Breite und Höhe (w und h). Das Bild lässt Du dann vom MovieClip "a" (der, der instanziert wird) laden: Clip zum bearbeiten öffnen und dort in die Zeitleiste:
PHP:
this.onEnterFrame = function() {
    if (movie != undefined) setMovie(movie);
}

function setMovie(fname) {
    this._visible = false;
    var img = this.createEmptyMovieClip("img", 1);
    img.loadMovie(fname);
    this.onEnterFrame = function() {
        if (img._width > 10 && img._height > 10) {
            img._width = w;
            img._height = h;
            delete this.onEnterFrame;
        }
    }
}

Gruß
.
 
Also...

ich habe es jetzt so gelöst, dass ich im Movieclip "a" noch ein MC eingebettet habe und in den dann immer das Bild geladen hab. Den hab ich außerdem noch mit folgendem Script 'belegt':

PHP:
onClipEvent(data) {
	if (this._width > this._height) {
		faktor = (100/this._width);
	} else {
		faktor = (100/this._height);
	}
	this._width = faktor * this._width;
	this._height = faktor * this._height;
}

und es funktioniert bis jetzt alles. Das hatte ich schon mal, aber dann hatte ich eine Idee und hab alles nochmal umgeschrieben, und dabei is mir das abhanden gekommen, bzw. mir ist es nicht mehr eingefallen.... Oo"


Ich muss nur noch ein on (release) event programmieren und die Bilder (die ja auch Hochformat haben können) sozusagen "zentrieren".

Also nochmal Vielen Dank.


MfG Phr34k
 
Zurück