2012-03-17 9 views
1

Я играю с открытой флэш-диаграммой. Посмотрите на эту диаграмму:Flash, AS3: Рисованные объекты не то же самое

http://teethgrinder.co.uk/open-flash-chart-2/line-solid-dot.php

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

this.graphics.lineStyle(0, 0, 0); 
this.graphics.beginFill(colour, 1); 
this.graphics.drawCircle(0, 0, style.get('dot-size')); 
this.graphics.endFill(); 

Я пытался изменить размер или рисовать прямоугольники вместо этого, но они до сих пор не выглядят одинаково. Я думаю, проблема в другом месте ...

EDIT: Я также заметил, что другие элементы также немного отличаются (и они не должны) - например, осевые галочки. Я предполагаю, что это проблема качества. Но когда я нажимаю правой кнопкой мыши на объект вспышки, есть опция «качество», а «высокий» установлен (есть также «средний» и «низкий»). Могу ли я повысить уровень качества в другом месте?

+0

Я вижу ту же проблему в своем собственном флэш-коде. Круги, даже более крупные, которые не должны быть ограничены пиксельным совершенным рендерингом, выглядят так, как будто кто-то пытался сделать круг из куска строки. Это прямо из функции graphics.drawCircle, в высоком качестве. – Glenn

+0

... и только что открыл причину. graphics.linestyle pixelHinting был включен и заставил круги выглядеть ужасно. – Glenn

ответ

1

От hollow dots, я понял, что вокруг каждой точки есть что-то, что отделяет каждую точку от соединительных линий. & также производит размытые полые точки.

Установка атрибута «halo_size» на 0 помогла в этом случае.

Я заметил тот же пробел в ваших проданных точках. Может, в этом и проблема.


Чтобы установить качество этапа, просто используйте:

stage.quality = "low"; 
stage.quality = "medium"; 
stage.quality = "high"; 

Вы можете установить его в главного класса самих, который случается класс документа для этого проекта.


Я заметил, что если размер карты составляет 400 x 400, эти несоответствия перестают существовать. Таким образом, проблема, которую мы видим, представляет собой проблему масштабирования & не в том месте, которое мы считаем.

Кроме того, настройка линии линии позволяет создать соответствующую границу вокруг круга. Это, по крайней мере, будет выглядеть лучше.

this.graphics.lineStyle(1, colour, 1); 
this.graphics.beginFill(colour, 1); 
this.graphics.drawCircle(0, 0, style.get('dot-size')); 
this.graphics.endFill(); 
+0

Спасибо за ответ. К сожалению, это не так. Я также заметил, что другие элементы также немного отличаются (и они не должны) - например, осевые галочки. Я предполагаю, что это проблема качества. Но когда я нажимаю правой кнопкой мыши на объект вспышки, есть опция «качество», а «высокий» установлен (есть также «средний» и «низкий»). Могу ли я повысить уровень качества в другом месте? – Jack

+0

@Jack Эй вижу мои правки. – loxxy

+0

thx для информации, к сожалению, это ничего не меняет, потому что по умолчанию качество «высокое». Я заметил, что в версии 1 OFC все выглядит так, как должно: http://teethgrinder.co.uk/open-flash-chart/gallery-data.php.Я думал, может быть, это beacause в версии 2 мы используем swfobject для инициализации ofc, но это не так. Я также читал что-то о «сглаживании» (flash.display.Bitmap class), но я не знаю, могу ли я как-то применить его к коду. Кажется, довольно большая ошибка в версии 2.0 (версия 2.5 сообщества не исправляет ее). Есть ли у вас другая идея? – Jack