Skalierung eines MovieClips

msw

Grünschnabel
Hallo.

Ich habe folgendes Problem:
Ich möchte eine Webseite komplett in Flash erstellen.
Bisher klappt das ganz gut.
Mithilfe eines MovieClips möchte ich eine Art Popup-Fenster erstellen.
Da die Größe der Fenster je nach Inhalt variiert, skaliere ich die Fenster entsprechend.
Das Problem: Alle Elemente im MC werden mitskaliert (Text, Graphik, alles).
Ist auch logisch. ok.
Aus Sicht des MCs ändert sich nichtmal das Koordinatensystem.
Sogar die Mauszeiger-Koordinaten werden "mit-skaliert."
Das Resultat: Die Objekte innerhalb des MC merken nicht, ob sie mit dem MC vergrößert oder verkleinert werden. Aus Sicht des MC ändern sich Länge und Breite nicht.

Die Titelleiste des Fensters soll aber z.b. nicht mitskaliert werden.
Gibt es eine elegante Möglichkeit, das zu bewerkstelligen?
(scale9Grid ist hier ungünstig)

Ich könnte den Text natürlich direkt auf die Bühne, vor das Fenster legen.
Mir wäre es aber lieb, wenn sich alles in einen MC (ein Objekt) zusammenfassen ließe.

D.h. ich programmiere einmal eine Fenster-Klasse, und möchte dann via ActionScript die FensterObjekte anzeigen, ihre Größe festlegen und mit Text füllen.
Ohne das ich z.b. noch extra Text-Objekte auf der Bühne erstellen muß (Das sollen die Fenster-Objekte selbst machen.)

Vielen Dank im Voraus.
 
Hallo,

naja. Du könntest natürlich in deinen Fenster-MC einen weiteren MC packen, welcher nur den Hintergrund des Fensters enthält, und diesen dann skalieren. Dann werden Textfelder etc. nicht mitskaliert.

Ich hoffe ich hab dein Problem richtig verstanden, ist etwas unklar geschrieben.

Gruß
.
 
Also es geht doch:
Die scaleX und scaleY Eigenschaften eines MC enthalten die Faktoren, um die der MC vergrößert/verkleinert wurde.
Man kann nun alle Koordinaten mithilfe der Skalierungsfaktoren auf das ursprüngliche Koordinatensystem normieren und kann die Objekte so auf Größe halten.
Allerdings muß man bei jeder Größenänderung die Korrektur von ActionScript durchführen lassen.

Mich interessiert eher eine Möglichkeit, das ganze schon zur Entwurfszeit zu bewerkstelligen (Also Objekt auf die Bühne, in Größe ziehen, fertig).

Danke!

msw
 
Danke für Deine Antwort, Jens.
Also nochmal mein Problem:
Ein MC ist auf der Bühne. In diesem ist widerrum z.B. ein Rechteck eingebettet.
Das Rechteck ist auch ein MC
Jetzt möchte ich, das dieses Rechteck seine ursprünglichen Maße beibehält, auch wenn man den übergeordneten MC, wo es drin ist, skaliert. Mittels ActionScript geht das umständlich zu machen.
Mir wär aber irgendwas lieber um das zur Entwurfszeit machen zu könnnen (Im Flash selbst, statt mit AS).

Es wäre zwar Möglich, das Rechteck direkt auf die Bühne (z.b. in eine andere Ebene) zu legen.
So dass es unabhängig von diesem besagten MC ist, aber es wäre praktischer, wenn man das alles in einen MC packen könnte. Da ich später mehrere "Fenster"-Objekte verwenden möchte.

Ich hoffe, ihr wisst halbwegs was ich meine.

Danke und Gruß
msw
 
Hi,

bei Skalierungen zur Laufzeit gehe ich meistens so vor, wie Jens es beschrieben hat: Ich skaliere nicht das komplette Fenster, sondern nur den Hintergrund, die Rahmen und die Titelzeile, so dass die anderen Inhalte nur umpositioniert werden müssen.

Skalierungen zur Entwurfszeit sind auf diese Weise (ohne Komponenten UI) nicht möglich. Ich gehe dann oft so vor:

Du skalierst den gesamten Clip zur Entwurfszeit.

Im ersten Frame des MC speichere ich die Eigenschaften _xscale und _yscale, setze dann beides auf 100% und skaliere dann die enthaltenen Elemente wie oben beschrieben um den ermittelten Faktor.

Gruß
.
 
Hallo.

Du meinst also, am besten einen großen Container-MC erstellen.
Da alle Elemente hinein, und dann den Hintergrund auf die entsprechende Größe bringen und den Rest umpositionieren?
Gut, das hatte ich dann nicht so gecheckt, als Jens es gepostet hatte :).
Der Teil, des Containers, welcher nicht vom Hintergrund oder den Elementen bedeckt wird, ist ja dann eh transparent.
Das müsste gehen (oder hab ich das doch falsch verstanden).

Btw. was hat es mit der Komponenten UI auf sich? Hab es schon mal irgendwo gelesen, aber nie damit beschäftigt.
Vielen Dank.

msw
 
Zuletzt bearbeitet:
Zurück