Просмотр полной версии : Смазанная картинка
Во флешке есть игровой интерфейс. Назовём его pi. ЧТобы его раскрывать на фулскрин внутри есть 3 отдельных символа: ul, dl, dr. В каждом таком символе всякие иконочки/кнопочки/циферки. весь pi (со всеми вложенными элементами) рисуется в flash cs и я его подрлючаю к проекту. Так вот, мне надо повесить в него иконку. Если сделать pi.addChild(ico) - картинка получается чёткая. А если я делаю pi.dr.addChild(ico) - картинка иконки получается размазанная, как будто к ней блюр применяли. Сначала я думал что где-то в pi блюр фильтр стоит. Но там нет никаких фильтров, проверял в отладчике. Eсть только фильтры DropShadow на текстах, но они далеко он этой иконки. Кто подскажет, где искать косяк?
KumoKairo
06.09.2013, 22:18
Надо напрямую задавать интовые значения координатам, там если чуть смещается по сетке - размазывается. Обычно помогает приведение присваиваемых координат к int, особенно если положение объекта считается по формулам, что - нибудь типа такого:
myObj.x = myAnotherObj.x + myObj.width / 2; //Если получится дробное значение - скорее всего заблюрится
myObj.x = int(myAnotherObj.x + myObj.width / 2); //А вот так уже нет
Есть еще свойство .snapToPixels, но оно только для Bitmap вроде доступно..
Нет, проверил. Просто написал
pi.dr.x = Math.round(pi.dr.x);
pi.dr.y = Math.round(pi.dr.y);
Всё равно смазанная картинка.
Чтобы понять, как это выглядит:
http://img.pixs.ru/storage/4/1/4/chetkostjp_7543064_8971414.jpg
Слева это когда родитель pi.dr - всё смазано. А справа - когда родитель pi.
Zebestov
07.09.2013, 15:02
Изображения следует прикреплять к сообщению.
Нашёл причину. Оказывается в редакторе (CS 5.5) при размещении элемента dr стояли зачем-то трёхмерные координаты, вот его и блюрило.
Причём я так и не нашёл как его вернуть в плоские координаты, приходится заново в редакторе всё пересобирать.
Frost47rus
08.09.2013, 12:11
pi.dr
Очень смешно))))
Добавлено через 40 секунд
когда родитель pi.dr - всё смазано
вы просто жжоте))))
Bletraut
08.09.2013, 14:53
Нашёл причину. Оказывается в редакторе (CS 5.5) при размещении элемента dr стояли зачем-то трёхмерные координаты, вот его и блюрило.
Причём я так и не нашёл как его вернуть в плоские координаты, приходится заново в редакторе всё пересобирать.
Так там же можно выставить Z = 0 и он снова станет двухмерным.
Увы, не работает. Там уже стоит z=0 и углы поворота тоже стоят в 0. Всё равно флеш уже считает картинку трёхмерной и обратно не переводит.
Как только вы начинаете использовать "трёхмерное" преобразование, то объекту назначается Matrix3D и картинка действительно портиться в качестве. Чтобы избавиться от размытия, когда 3d выставлено по нулям, необходимо обнулить матрицу
obj.transform.matrix3D=null
Но после этого все трансформации у объекта примут начальные значения, по этому перед обнулением 3d матрицы запомните положение, поворот и масштаб вашего объекта, чтобы выставить их заново.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.