Создание графиков на Flex. LineChart
Создадим график вида 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