[AS3] flash cs3 sprite resize

ActionScript και Flex Προγραμματισμός

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

[AS3] flash cs3 sprite resize

Δημοσίευση από Khronos » 29 Ιουν 2009 13:15

Γεια σας!

Πώς μπορώ να αλλάξω τις διαστάσεις ενος sprite που περιέχει μια εικόνα, χωρίς να αλλάξω το μέγεθος της εικόνας?

Αν χρησιμοποιήσω το free transform tool πάνω στο sprite, παραμορφώνει την εικόνα με αποτέλεσμα όταν κάνω update το image στο library να ξαναπαραμορφώνεται.

Ελπίζω να έγινα κατανοητός!

SwtosBK
Δημοσιεύσεις: 10
Εγγραφή: 26 Ιαν 2009 02:49

[AS3] flash cs3 sprite resize

Δημοσίευση από SwtosBK » 12 Ιούλ 2009 23:49

Αν και είναι λίγο παλιό το μήνυμα θα προσπαθήσω να σου απαντήσω.

Όταν κάνεις resize ένα οπτικό αντικείμενο το οποίο περιέχει άλλα αντικείμενα πάνω του , αναγκαστικά τα αντικείμενα αυτά θα γίνουν scaled. To μόνο που μπορείς να κάνεις είναι να πείς στα παιδιά του βασικού αντικειμένου να πάρουν scale το 1/scale του αρχικού.


Ακολουθεί σύντομος κώδικας ώστε να γίνει κατανοητό.
Στο παράδειγμα έχουμε 2 Movieclips.Ένα με όνομα mple και ένα kokkino.To mple είναι Child του κόκκινου.

Κώδικας: Επιλογή όλων

var mple:MovieClip = new Symbol1();
kokkino.addChild(mple);

kokkino.scaleX = 2;
kokkino.scaleY = 2;

mple.scaleX = 1/kokkino.scaleX;
mple.scaleY = 1/kokkino.scaleY;


Απλώς να θυμάσαι ότι πρέπει να το κάνεις για κάθε child .Άν συμβάινει συχνά στον κώδικά σου φτιάξε μια reusable function που με μια for κάνει scale σε όλα τα παιδιά ενός movieclip. Νομίζω ότι το παρακάτω δουλεύει.

Κώδικας: Επιλογή όλων

public function normalizeScaledChildren(baseMC:MovieClip) {
			var temp_mc:MovieClip = new MovieClip();
			
			for &#40;var i = 0, i < baseMC.numChildren - 1; i++&#41; &#123;
				temp_mc = baseMC.getChildAt&#40; i &#41;;
				temp_mc.scaleX = 1 / baseMC.scaleX;
				temp_mc.scaleY = 1/baseMC.scaleY;
			&#125;
		&#125;

Απάντηση

Επιστροφή στο “ActionScript και Flex Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες