Блог от AS3Coder'a о JavaScript, HTML, CSS... и немного о Flash.

воскресенье, 8 ноября 2009 г.

Как правильно перевести пиксели в дюймы?

Сегодня мы рассмотрим, как правильно перевести экранную меру длины (пиксели) в общепринятую (дюймы).

Сколько пикселей в одном дюйме?

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

Для преобразования используется простая пропорция:



Что такое INCHES и PIXEL понятно, а вот что такое DPI?

DPI (Dots per inch) - Количество точек на линейный дюйм.

Где взять значение DPI?

Значение DPI в ActionScript 3.0 хранится в свойстве screenDPI в статическом классе flash.system.Capabilities.

Чтобы не хранить формулу в памяти, я написал небольшой класс для перевода дюймов в пиксели, и наоборот. Если есть необходимость переводить пиксели в какую-то другую меру длины (миллиметры, сантиметры, метры и т.д.), достаточно сначала перевести в дюймы, потом полученные дюймы в необходимую величину.




Length.as


 

четверг, 5 ноября 2009 г.

Сглаживание линий на графике. Как?

Рассмотрим график:



Часто бывает необходимо, чтобы линии на графике были не в виде ломаной кривой, как показано выше, а в виде сглаженной.

Сглаживание ломанной кривой

В этом посте я не буду затрагивать ActionScript, я только опишу принцип решения задачи.

1. Для начала, нарисуем по заданным точкам кривую.



2. Для каждой точки (кроме первой и последней) добавим вспомогательные точки на отрезках соединяющих текущую точку с предыдущей и следующей. Расстояние до вспомогательных точек должно быть одинаковым, и быть равным 25% минимального отрезка (между отрезками до точки и от неё).



3. Теперь вспомогательные точки нужно, соединить квадратичной кривой Безье, используя в качестве опорной, точку со значением. В этом нам поможет метод curveTo() экземпляра класса flash.display.Graphics



4. Добавим настройку уровня сглаживания.



Вроде получилось, но...

Как сделать так, чтобы сглаженная кривая проходила через точки со значениями?

Этот вопрос мучает меня второй день. Ответ я пока не нашел. Может быть вы что-то подскажете. Куда копать?
  

среда, 4 ноября 2009 г.

Как добраться до классов внутри загруженной флешки?

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

А можно ли добраться до классов, внутри загруженного .swf-файла?

Оказалось, что можно. При помощи метода applicationDomain.getDefinition() можно получить ссылку на класс внутри content.loaderInfo у экземпляра типа flash.display.Loader.

Для примера, я создал файл library.swf с зажитым в него классом Circle.



На событие Event.COMPLETE о полной загрузке library.swf в loader, вызывем следующую функцию:



Получим результат:




source.zip (5 Кб)
 

Поиск по блогу

Обо мне



Farid Shamsutdinov (AS3Coder)
Russia, Tatarstan, Kazan
as3coder@gmail.com

Подробнее...

Постоянные читатели

© 2014 Farid Shamsutdinov. При копировании материалов, ссылка на источник обязательна. Технологии Blogger.