Monday, February 16, 2009

Στοιβάζοντας movieclips στο Flash.

Αν είσαι Flash developer τοτε οι παρακάτω γραμμές κώδικα θα πρέπει κάτι να σου θυμίζουν:

var xPos:Number = 0;
for( var childNode:Xml in rootNode.elements() )
{
var tmpmc:Movieclip = new MenuBtn();
tmpmc.label.text = childNode.get("Label");
menuPlaceholder.addChild(tmpmc);
//...
tmpmc.x = xPos;
xPos += tmpmc.height + 6;
}


Κατι παρόμοιο έχεις συναντήσει είτε οταν φτιάχνεις ενα δυναμικό μενού που αντλεί στοιχεία απο ενα xml, είτε ενα γκάλερυ για φωτογραφίες.

Αυτή η προσέγγιση όμως πάντα με προβλημάτιζε, έτσι έφτιαξα μια μικρή βιβλιοθήκη που χειρίζεται τέτοιες καταστάσεις με ποιό κομψό τρόπο. Ακολουθεί ενα μικρό demo του τί μπορεί να κάνει..





Το πρωτο παράδειγμα θα μπορούσε να γραφεί κάπως ετσι:

var sh:StackHorizontal = new StackHorizontal(menuPlaceholder,6);
for( var childNode:Xml in rootNode.elements() )
{
var tmpmc:Movieclip = new MenuBtn();
tmpmc.label.text = childNode.get("Label);
sh.addChild(tmpmc);
//...
}

Πολύ καλύτερα, ε;
Προσέξτε οτι δεν καλώ την addChild του menuPlaceholder αλλα της sh.

Η βιβλιοθήκη είναι γραμμένη εξωλοκλήρου σε HaXe και μπορείτε να την βρείτε στο www.codeplex.com/nkHaxeLibrary. Είναι λίγο φτωχή για την ώρα, αλλα με τον καιρό θα εμπλουτιστεί. Θα ακολουθήσουν νέα παραδείγματα καθώς θα προσθέτω νέες κλάσεις.