2009-06-10 4 views
1

J'essaie d'utiliser des guides sur ma scène Flash pour mieux aligner les objets, mais comment puis-je aligner les guides sur les pixels? La moitié du temps, ils finissent par être comme 298.4, quand je les veux joliment cassé sur chaque pixel, c'est à dire. 298.0. J'utilise Flash CS3 et toutes les options d'accrochage sont activées. J'ai lu quelque part que maintenir shift va accrocher les guides aux pixels, mais cela ne semble pas fonctionner.Comment aligner mes guides sur des pixels dans Flash (CS3)?

Répondre

3

Certains gars pourraient ne pas considérer cette question pertinente pour stackoverflow car elle n'est pas liée à la programmation, ou c'est plutôt facile. Il peut se geeky bien :)

Quoi qu'il en soit, Si vous allez à Modifier Accrochage (CMD +/ (MAC) ou Ctrl +/ (PC)) et définir:

  1. Aligner par
  2. Aligner sur Guides
  3. Accrocher aux pixels

a tourné sur et également, activez la grille (cliquez avec le bouton droit sur un espace vide dans le document et accédez à Grille> Afficher la grille). Vous pouvez modifier la grille pour qu'elle soit 1 x 1 au lieu des 18 x 18 pixels par défaut.

Si vous n'activez pas la grille, vous risquez d'obtenir des valeurs de demi-pixel (.5), ce que je suppose que vous voulez éviter. Faites-moi savoir si vous envisagez de faire un peu de pixel art, je peux vous recommander quelques outils pratiques, sinon si c'est juste d'avoir une mise en page précise que vous êtes configuré, l'extension this aurait été utile, mais le lien ne travailler malheureusement.

Heureusement, c'est une chose assez facile à écrire. Je viens de faire un nouveau document JSFL (RoundPixelValues.jsfl par exemple) et enregistré dans le dossier $ Flash/Commandes dossier, où Flash est votre dossier de fichiers d'application/programme.

Vous pouvez écrire tout ça en 3,4 lignes de code probablement, mais je l'ai spead il sur 10 pour une meilleure lisibilité:

var doc = fl.getDocumentDOM(); 
var timeline = doc.getTimeline(); 
var currentLayer = timeline.layers[timeline.currentLayer]; 
var currentFrame = currentLayer.frames[timeline.currentFrame]; 
var elements = currentFrame.elements; 
var elementsNum = elements.length; 
for(var i = 0 ; i < elementsNum ; i++){ 
    elements[i].x = Math.round(elements[i].x); 
    elements[i].y = Math.round(elements[i].y); 
} 

il suffit de coller le code dans le fichier JSFL nouvellement créé et enregistrez . L'option devrait apparaître dans votre menu Commandes. L'avantage est que vous pouvez également configurer un raccourci clavier si vous en avez assez souvent besoin.

Goodluck!

Questions connexes