Größe dynamisch zuweisen

Bunny1502

Mitglied
Hallo,
ich stehe etwas auf dem Schlauch:
Vorab ich habe einen "Dummy" mit hochgeladen, der mein Problem verdeutlichen soll.
Ich möchte die Größe des Movieclips dynamisch zuweisen.
Die Breite des Movieclips ist kein Problem: Movieclip._width wird eine Variable mit dem entsprechenden Wert zu gewiesen, aber durch die Animation bekomm ich es nicht hin auch die Höhe auf die Art zuzuweisen.
Mach ich das genau wie bei der Breite ist der MC unendlich hoch.
Wenn ich die Größe im Movieclip ändere hat das keine Auswirkungen, nur wenn ich das ganze in den Frame schreibe, an dem der Tween endet, aber dann hat das logischerweise keine Auswirkung auf die Animation.
Vielleicht kann sich das ja mal jemand anschauen....

Gruß, Bunny
 

Anhänge

Zuletzt bearbeitet:
Hi,

klar ist: Wenn du dem MC "testani" zu Beginn eine Höhe von 300 Pixeln zuweist, bekommt er dadurch eine vertikale Skalierung von 300%, da er im ersten Frame nur einen Pixel hoch ist. Mit dem Fortschreiten Deines Tweenings wächst die Höhe dann beträchtlich - im letzten Frame auf 30.000 Pixel, was auch zu Anzeigefehlern (besagtem "Springen") führt.

Es ist generell problematisch und in den meisten Fällen nicht nötig, in Tweeningskalierungen mit AS einzugreifen; neben diesem Problem bekommst Du Schwierigkeiten, wenn Du neue Schlüsselbilder betrittst und die enthalten Objekte initialisiert werden ...

Wenn Du mir sagst, was Du erreichen willst (z.B. eine feste Breite plus Beibehaltung des Seitenverhältnisses), kann ich Dir ein Beispiel posten, dass höchstwahrscheinlich funktioniert.

Gruß

P.S.: Das Seitenverhältnis würdest Du z.B. so beibehalten:
Code:
MC1._width = breite;
MC1._yscale = MC1._xscale;
.
 
Das Seitenverhältnis, kann sich verändern.
Ich möchte, dieses animierte Rechteck haben, aber im nachhinein die Höhe festlegen.
Ähnlich wie ich das mit Breite gemacht habe (MC1.MC2._width = breite)
D.h. in der Animation sollte die Höhe von 1 px größer werden, bis die angebene Höhe erreicht wurde.
Wenn ich im Frame wo bildani liegt bild._hight = 30; schreibe wird hinterher die richtige Höhe angezeigt, aber in der Animation wird das Rechteck von 1px größer bis es so groß ist, wie das bildani gezeichnet ist und nicht wie ich es im Actionscript festgelegt hab und dann springt es zur richtigen Größe.
Das ist ja auch klar, weil ja, wenn die Animation startet noch garnicht bekannt ist wie groß ich bildani haben will.
Ich hätte nicht gedacht, dass das so kompliziert es vorher die Größe festzulegen.
Kann man nicht einfach irgendwie bevor die Animation startet sagen: sagen wie groß bildani sein soll, bzw. bis auf welche Größe(Höhe) bildani0 faden soll?
 
Was du zu Beginn erkläst hast hab ich verstanden, aber warum funktioniert dann nicht:
MC1.MC2.bildani._height = xy; ?
 
Zuletzt bearbeitet:
Was du zu Beginn erkläst hast hab ich verstanden, aber warum funktioniert dann nicht:
MC1.MC2.bildani._height = xy; ?
Aus dem nämlichen Grund: Du legst die Höhe des Clips im ersten Frame des Tweenings fest - also an seiner schmalsten Stelle. ;)

Wenn Du es unbedingt mit einem Tweening machen willst, musst der MC mit der Animation schon in seinem ersten Frame wissen, wie groß die Box im letzten Frame (unskaliert) sein wird, um aus der übergebenen Endhöhe die notwendige prozentuale Skalierung zu errechnen - was eine recht umständliche Methode ist (Der erste Anhang enthält ein entsprechendes Beispiel).

Eleganter wäre es in diesem Fall, die Vergrößerung statt per Tween direkt mit AS zu realisieren (siehe zweiter Anhang).

Gruß
.
 

Anhänge

Vielen, vielen, Dank für die Beispiele.
Natürlich ist die ActionScript-Variante die elegantere Lösung, ich hatte auch schon mal an etwas in der Art gedacht, aber habe das dann gleich wieder verworfen, weil ich zu keinem brauchbaren Ergebnis gekommen bin.

Jetzt aber schon ;), Danke!
 
Jetzt ist gerade noch ein kleines Problem auf getreten, bei dem Du mir vielleicht auch noch mal weiterhelfen könntest.
Nach dieser Animation lade ich ein Bild mittels:
Code:
mc.loadMovie("bild.jpg");
Ich würde jetzt gerne auf die Größe dieses Bildes zu greifen.
Aber warum kann man das nicht mitttels mc._width?

Ich dachte, dass mc nun durch bild.jpg ersetzt würde.
Aber ganz so scheint es aber nicht zu sein, oder?
 
Ich hab noch eine Frage zu ActionScript Version und versuchs einfach noch mal: ;)
Wenn ich bei mit einer Variablen ani.maxh belege:
Code:
ani.maxh = imagesize;
Ist die Höhe der Animation gleich dem Variablenwert, so wie gewollt, will ich das ganze aber 20px größer haben, hab ich schon wieder so eine riesen Höhe:
Code:
ani.maxh = imagesize+20;
Auch auch wenn ich imagesize vor der Zuweisung um 20 erhöhe bekomme ich eine viel zu große Höhe.
Benutze ich aber
Code:
ani.maxh = imagesize*2;
um die Höhe zu verdoppeln funktioniert es.
Das verstehe ich nicht?
 
Zurück