Как заставить мои направляющие привязываться к пикселям во Flash (CS3)? - PullRequest
1 голос
/ 10 июня 2009

Я пытаюсь использовать направляющие на сцене Flash для лучшего выравнивания объектов, но как мне сделать привязки к пикселям? Половину времени они заканчиваются как 298.4, когда я хочу, чтобы они красиво привязывались к каждому пикселю, т.е. 298.0.

Я использую Flash CS3, и у меня включены все параметры привязки. Я где-то читал, что нажатие shift приведет к привязке направляющих к пикселям, но, похоже, это не сработает.

1 Ответ

3 голосов
/ 21 июля 2009

Некоторые ребята могут не считать этот вопрос актуальным для stackoverflow, поскольку он не связан с программированием или довольно прост. Это может быть отвратительным, хотя:)

Во всяком случае, Если вы перейдете на Изменить привязку ( CMD + / (MAC) или Ctrl + / (ПК)) и установите:

  1. Snap Align
  2. Привязка к направляющим
  3. Привязка к пикселям

включил на , а также включите Сетка (щелкните правой кнопкой мыши пустое место в документе и выберите Сетка> Показать сетку ). Возможно, вы захотите изменить сетку на 1 x 1 вместо стандартных 18 x 18 пикселей.

Если вы не включите сетку, вы можете получить привязку к полпиксельным (.5) значениям, которых, я полагаю, вы хотите избежать.

Дайте мне знать, если вы планируете создавать пиксельную графику, я могу порекомендовать несколько удобных инструментов, в противном случае, если вы настроили просто четкую компоновку, это расширение было бы удобно, но ссылка не работает, к сожалению.

К счастью, это довольно легко написать. Я только что сделал новый документ JSFL (например, RoundPixelValues.jsfl) и сохранил его в папке $ Flash / Commands , где Flash - папка с файлами приложений / программ.

Возможно, вы можете написать все это в 3,4 строчках кода, но для удобства чтения я выделил 10:

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);
}

просто вставьте код во вновь созданный файл jsfl и сохраните. Опция должна появиться в вашем меню команд. Преимущество состоит в том, что вы также можете настроить сочетание клавиш, если вам это нужно достаточно часто.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...