![]() |
спидометр
Доброго времени суток, возник вопрос: делаю спидометр, стала задача следующего типа: есть дисплей для вывода цифр, есть стрелка спидометра, каким образом можно принимать параметр FlashVars значение +% и чтоб стрелка показывала на спидометре это значение, к примеру отсылают через FlashVars число 25 + 40% и стрелка стояла на этом значении, подскажите как лучше реализовать
|
Вам непонятно как rotation правильный сделать? Или как к числу процент прибавить?
|
запамятовал как считать FlashVars значение и добавить к нему процент с отображением стрелки на этой шкале со значением))
|
в ХТМЛ:
... <param name="flashvars" value="param1=aaa"> ... <embed src="MyFlash.swf" flashvars="param1=aaa" quality="autohigh"... ... в АС: var a:String = stage.loaderInfo.parameters['param1']; |
хорошо, это работает, появилась проблема другая, как изменять шкалу этого самого спидометра? к примеру у меня шкала на спидометре от нуля до 110, приходит параметр 100, стрелка прыгает на 100, приходит параметр 200, надо стрелку перевести на 200 и перерисовать шкалу от 0 до 210 к примеру, каким образом это можно сделать?
|
А как вы делаете шкалу до прихода числа 200? Она у вас битмапой сделана?
|
пока шкала у меня простая отрисованая статика от 0 до 110, хотелось понять как лучше перерисовать эту шкалу для моей задачи
|
Нарисуйте дугу (можно даже битмапой, красивую), затем с заданным шагом по дуге динамически расположить текстфилды, в которые будут вбиваться значения от 0 до нужного предела (0, 20, 40, 60 ну или как пожелаете). Как расположить элементы по кругу - ищите на форуме, куча кода. Если не хочется динамически - расставьте вручную. Как вписать в текстфилд значение - думаю знаете.
|
по дуге я их и так расставлю, вопрос в другом еще, шкала может быть и до 1000 и до миллиона (ну вот такая задача вообщем), как такое количество отобразить на этой дуге? я без понятия
|
Может, логарифмическую шкалу сделать просто? А то меняющаяся шкала спидометра - это пц какой-то. Ну или почти логарифмическую, как на спидтест.нет.
|
логарифмическую шкалу сразу нет, не годится, предлагал сделать, как еще можно выкрутиться?
|
Скорость меняется динамически или её надо только раз показать?
Если только раз - можно нарисовать с десяток шкал и показывать в зависимости от числа. Если динамически - я бы писал функцию типа "нарисовать шкалу от 0 до н" и чем-то твиннероподобным менял н и перерисовывал шкалу и положение стрелки. |
флешка на странице, в зависимости от полученого параметра, стрелка отклоняется на это значение и шкала уже перерисована, дали другой параметр, перегрузили, и шкала снова перерисовалась, вот каких образом ее отрисовывать понятия не имею((
|
А числа все время будут такие круглые (100, 200, 1000, 1000000...) или нет, и как вы определяете сколько прибавить к значению, чтобы получить максимум шкалы? В смысле если прийдет 48, тогда какой максимум будет на шкале?
|
Принципиально вариант вам уже подсказали: нарисовать круглую шкалу, поделить её на n-секторов, за значение каждого сектора отвечает текстовое поле которое расположено так, в секторе, как нужно по задаче. Определенного изначально значения эти поля не имеют, они задаются тогда лишь когда получены данные которые нужно отобразить на спидометре, т.е. - текущее значение. "Округлить" значения секторов это тоже не сложная мат. задачка. Ну к примеру: получено число 48, в числе два разряда, значит максимум будет 3-х разрядное - 100, секторов к примеру 10 - значит значение каждого сектора кратно десяти. Виз. элемент стрелки спидометра поворачиваете на ( ( макс.градус - мин. градус ) * ( нужное значение / максимальное значение ) ) + мин.градус.
|
Тахометр в машине видели? Так вот на нем шкала от 1 до 8(к примеру), и есть такая надпись x1000Rpm . Я к тому, что вам проще менять именно этот коэффициент если у вас разброс диапазона такой бешеный.
|
вообщем решение такое чтоб передавать и данные шкалы вместе с параметрами, остается всего один вопрос: каким образом после переданных параметров устанавливать стрелку спидометра в это положение? подскажите с реализацией пожалуйста
|
| Часовой пояс GMT +4, время: 08:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.