[Flash 8] MovieClip Absolute "ecke" positionieren

Eisbaer

Erfahrenes Mitglied
Hallo,

eine etwas kompliziert zu erklärende Problemstellung habe ich hier wo ich hoffe einer unter euch könnte mir helfen ;)...

zur verdeutlichung habe ich ein bild angehangen.

Also es geht darum das ich einen MovieClip dupliziere und darin in einen anderen MovieClip ein Bild lade. Nun würde ich aber gerne da die bilder eine unterschiedliche Höhe haben können, das wenn ein geladenes Bild länger ist als der MovieClip soll er nach oben grösser werden statt nach unten, es soll also die Absolute Ecke (so nenn ich es mal) von oben links nach unten links gesetzt werden! Ich hoffe es ist so verständlich.

Im Bild zeigen die Pfeile die Richtung an, Pfeil nach unten wie es normal ist und Pfeil nach oben wie es sein sollte ;) die Linien sollen den MC symbolisieren und der Kreis die Ecke.

Wäre über Lösungen wie auch Denkanstösse sehr dankbar, es hilft auch wenn mir jemmand sagen kann wie man diese "Ecke" oder das verfahren zum umsetzen nennt!


Gruss und Danke
 

Anhänge

  • mcecke.JPG
    mcecke.JPG
    3,4 KB · Aufrufe: 47
du kannst der Höhe des Bildes die des mc's abziehen. Die Differenz zeigt an, wieviel höher du dein Bild positionieren musst...
 
Danke für die Antwort, aber gibt es keine Möglichkeit die "Ecke" zu versetzen? wäre am einfachsten und ich hätte nicht das Problem das ich warten muss bis das Bild geladen ist, da ich ja die Höhe erst habe wenn das Bild geladen ist.

Gruss
 
Hallo,

eine "Ecke" gibts in diesem Sinne sowieso nicht. Das was du Ecke nennst, ist der Ankerpunkt, der Nullpunkt des Koordinatensystems des MovieClips, den kannst du nicht nach unten links verschieben o.ä. Schwierig ist auch folgendes: Um "unten links" zu definieren, brauchst du eine Höhe. Wenn ich dein Problem richtig verstanden habe, möchtest du, dass sich die untere Kante der geladenen Bilder immer auf der y-Achse (y = 0) befindet, so dass die Höhe der Bilder nach oben (negativer y-Wert) flexibel bleibt. Dafür musst du aber zwingend wissen, wie hoch das jeweilige Bild ist. Das ist auch nicht weiter tragisch, man kann das ja dynamisch abfragen. Eine Variante (AS2) wäre folgende:

Code:
var loader: MovieClipLoader = new MovieClipLoader();
var container: MovieClip = this.createEmptyMovieClip("container", 0);
var picture: MovieClip = container.createEmptyMovieClip("picture", 0);

function onLoadInit (a_mc: MovieClip) {
     a_mc._y = -a_mc._height;
}

container._y = Stage.height; //Irgendeine y-Position, an welcher die untere Kante der Bilder stehen sollte
loader.addListener (this);
loader.loadClip("somePicture.jpg", picture);

Gruss
 
Hi,

ich habe mal sowas gebastelt zum dynamischen Ändern des Registrierungspunktes. Die Stelle auf der gedrückte wurde, wird vergrößert.

PHP:
// Beschreibung: Mc a enthaelt das Mc b, welches onPress an der Stelle vergroessert wird, an der gedrueckt wird. 

_global.tl = this; // Referenz auf _root in einer globalen Variable speichern  

a.onPress = function() 
{ 
    // X- und Y-Abstand von dem Punkt, auf dem gedrueckt wird und der aktuellen Position von Mc a 
    var disX = _global.tl._xmouse - this._x; 
    var disY = _global.tl._ymouse - this._y; 
    // Auesseres Mc (Mc a) an die Position der Maus verschieben 
    this._x = _global.tl._xmouse; 
    this._y = _global.tl._ymouse; 
    // Inneres Mc (Mc b) entgegengesetzt bewegen, damit die Position auf der Buehne unveraendert bleibt. 
    this.b._x -= disX; 
    this.b._y -= disY; 
    // Vergroessern 
    this._xscale = this._yscale = 300; 
}; 

a.onRelease = function() 
{ 
    // Auf Normalgroesse verkleinern 
    this._xscale = this._yscale = 100; 
};

p-flash
 

Anhänge

  • Registrierungspunkt.zip
    40,9 KB · Aufrufe: 30
Vielen dank euch beiden, werde mal schauen ob ich das Script so für mich umbasteln könnte, ansonten werde ich wohl um höhen nicht herum kommen. Aber danke nochmal.


Gruss

//Edit

Ok es ist dann doch die Methode geworden das ich den MC um die überstehende Bildhöhe verschoben habe.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück