Сползает графический индикатор наполненности

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Сползает графический индикатор наполненности

Сообщение Agiliter » 16 май 2014, 12:45

Добрый день! Сорри за корявое название темы, не пришло в голову ничего лучше. Нужно нарисовать прямоугольник, который бы показывал процент заполнения какой-либо величины. Например, в играх это опыт. Сам алгоритм прост и понятен, но где-то допущена ошибка.
Вот функция для нарисовки индикаторов прогресса
  1. private function createIndicator(percent:Number, color:uint, x:int, y:int, lineColor:uint = 0xFFFFFF):void
  2.         {              
  3.             // создаем фон
  4.             background = new Shape();
  5.             background.graphics.lineStyle(1, lineColor);
  6.             background.graphics.beginFill(color, 0.6);         
  7.             background.graphics.drawRoundRect(x, y, 200, 20, 25, 25);
  8.             background.graphics.endFill();
  9.             this.addChild(background);
  10.            
  11.             // плашка которая будет отображать прогресс
  12.             fill = new Shape();
  13.             fill.graphics.lineStyle(1, lineColor);
  14.             fill.graphics.beginFill(color, 1);         
  15.             fill.graphics.drawRoundRect(x, y, 200, 20, 25, 25);
  16.             fill.graphics.endFill();
  17.             fill.scaleX = percent;
  18.             //fill.width *= percent;
  19.             this.addChild(fill);           
  20.         }

Ну и
  1.             createIndicator(0.10, 0xff9900, 500, 75);
  2.             createIndicator(0.20, 0xff9900, 500, 100);
  3.             createIndicator(0.30, 0xff9900, 500, 125);
  4.             createIndicator(0.40, 0xff9900, 500, 150);
  5.             createIndicator(0.50, 0xff9900, 500, 175);
  6.             createIndicator(0.60, 0xff9900, 500, 200);
  7.             createIndicator(0.70, 0xff9900, 500, 225);
  8.             createIndicator(0.80, 0xff9900, 500, 250);
  9.             createIndicator(0.90, 0xff9900, 500, 275);
  10.             createIndicator(1.00, 0xff9900, 500, 300);
  11.             createIndicator(1.10, 0xff9900, 500, 325);


Индикаторы рисуются, но при значениях percent неравных 100% плашка сползает влево/вправо. Использовал и .scaleX, и .width - результат один

Изображение
С уважением,
М.Ф.
Agiliter

 
Автор темы
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46
Благодарил (а): 29 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Сползает графический индикатор наполненности

Сообщение sasha^ » 16 май 2014, 14:04

писать код не буду.. объясню на словах..
во-первых это называется прогрессбар(progressbar)
во-вторых при создании(заливке) fill.graphics.drawRoundRect(x, y, 200, 20, 25, 25); заливай не от x,y, а от 0.. потом уже выставляй всей полоске(графический индикатор наполненности :) ) x и y.. и будет все окей.
ps: а вообще лучше рассчитай длину и рисуй - не будет искажаться фигура...
удачи)

За это сообщение автора sasha^ поблагодарил:
Agiliter
sasha^

 
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52
Благодарил (а): 1 раз.
Поблагодарили: 136 раз.


Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0