Flash 9-scale und sein gewöhnungsbedürftiges Verhalten

Manches mal hat Flash so seine Tücken, besonders wenn es um das Zusammenarbeiten von AS3 Code mit der Flash IDE erstellten Inhalten geht.

Hier gibt es insbesondere dann Probleme wenn versucht wird ein Element, welches aus einer Füllung und einer “Outline” besteht, in ein 9-scale Element umzuwandeln und dann mit ActionScript zu skalieren (ob nun mit .width/.height oder .scaleX/.scaleY macht hier keinen Unterschied).

Hier eine Schritt für Schritt Anleitung wie dieser Fehler reproduziert und behoben werden kann. Schon mal vorweg die Lösung heißt “Convert Lines to Fills”.

 

Schritt 1: Einen Movieclip mit Füllung und Rand erstellen und als 9-scale modifizieren.

Nachdem der MovieClip erstellt wurde kann man den Rand modifizieren, je größer der Rand desto auffälliger der Fehler. Zur demonstration habe ich ihn hier auf 5 erhöht.

 

Schritt 2: Nachdem der Movieclip erstellt wurde wird er auf die Bühne gezogen und mit AS positioniert.

X-Position 25 Pixel und Breite 350 Pixel, damit sollte der MovieClip genau bei 375 Pixel enden.

Leider kommt Flash hier ziemlich durcheinander und brechnet die Breite und Höhe völlig falsch.

 

Schritt 3: Beheben des Fehlers durch die Konvertierung von Linien in Füllungen.

Durch die Konvertierung der Linien zu Füllungen kann der Fehler behoben werden.

Allerdings sollte man darauf achten dass der Inhalt des MovieClips nach der Konvertierung wieder korrekt positioniert wird.

 

Schritt 4: Fertig

Geschafft, somit wurde Flash ausgetrickst und die Skalierung funktioniert auch mit ActionScript einwandfrei.

Leave a Reply