Home | Flex and Flash | Flex Components | Charts | Создание графиков на Flex. LineChart

Создание графиков на Flex. LineChart

Font size: Decrease font Enlarge font
image

Создадим график вида LineChart, который бы показывал нам данные о кассовых сборах фильмов за уикэнд текущего года и прошлого. График будет отображать десятку лидеров за вторые апрельские выходные. Информацию возьмем с сайта kinomania.ru

Для создания графиков нам понадобятся данные (будем брать их из базы данных, предварительно заполнив ее информацией с сайта kinomania.ru) и Flex Builder.

Загрузку из БД сделаем при помощи AMFPHP. О том как работать с AMFPHP читайте здесь.

В серверной части создадим класс FilmVO, который будем заполнять данными из БД

...class FilmVO
{
public $filmPlace = 1;
public $filmName = '';
public $filmFullHouse = 0;
public $filmPeriod = '';

var $_explicitType = "vo.FilmVO";
}
...

и класс action, в котором метод getData() вернет массив с данными из БД

...

$db =& DB::connect($dsn, $options);
$db->query("SET NAMES utf8"); // для русских букв во Flex, иначе не хотел никак их правильно отображать

if (PEAR::isError($db)) die($db->getMessage());
$db->setFetchMode(DB_FETCHMODE_OBJECT);
$sql= "SELECT * FROM filmData";
$res = $db->query($sql);

while ($row =& $res->fetchRow())
{

$obj = new FilmVO();
$obj->filmPlace = (int) $row->filmplace;
$obj->filmName = (string) $row->filmname;
$obj->filmFullHouse = (float) $row->filmfullhouse;
$obj->filmPeriod = (string) $row->filmperiod;
$data[]=$obj;
}

return $data;
...

Все, с серверной частью закончили, теперь перейдем к клиентской.

Создадим новый проект linechart, не забудем указать в свойствах проекта Flex Compiler -locale en_US -services "services-config.xml"

На одном графике LineChart покажем сразу две линии, за текущий и прошлый года. По оси Y сбор за уикэнд в млн. долларов, по оси X места в чарте по сборам. При наведении на точку на графике отобразим название фильма и сколько он собрал.

Исходники - source, приложение - application

Comments ( posted):

Post your comment comment

Please enter the code you see in the image:


  • email Email to a friend
  • print Print version
  • Plain text Plain text
Tags
No tags for this article
Rate this article
0