5-звездочная рейтинговая система в ActionScript 3 - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно построить 5-звездочный рейтинг для галереи изображений. когда кто-то оценивает изображение из галереи, мне нужно получить оценку (например, 0,5 или 2,5 или 3 или 4,5 или 5)

Как мы можем создать что-то вроде 5-звездочной рейтинговой системы в AS 3.0?

Отредактировано: не решения для отправки оценки в базу данных ... Я ищу логику для установки рейтинга (звезды меняют цвет, указывающий, что рейтинг обновлен) и применяет значения рейтинга ...

Ответы [ 2 ]

4 голосов
/ 30 марта 2012

Теперь, когда вопрос полностью изменился, давайте посмотрим на отображение некоторых звездочек:

  • Вы можете использовать инструмент Многоугольник для создания звезд. Выберите этот инструмент, затем в свойствах выберите «Параметры», а затем «Звездочка».
  • Нарисуйте 5 звезд на слое.
  • Преобразуйте их в мувиклип.
  • Поместите их на свой слой. Скопируйте их, а затем поместите их на другой слой.
  • Нарисуйте прямоугольник, который будет цвета, который вы хотите, чтобы заполнить звезды достаточно большим, чтобы покрыть все звезды. Поместите это в другой слой и затем замаскируйте это одним из слоев звезды. Преобразуйте прямоугольник в мувиклип, чтобы его можно было изменить.
  • Создайте анимацию движения прямоугольника слева направо так, чтобы он медленно покрывал звезды.

У вас должно быть что-то вроде этого:

enter image description here

Используйте gotoAndStop(), чтобы остановиться на желаемом кадре. В моем примере 50 - это полный 5-звездочный рейтинг. 25 будет рейтинг 2,5 звезды и заполнить 2 с половиной звезды. И т.д.


Старый ответ

Я держу это здесь исключительно ради людей, которые ищут такие вещи, как «система рейтинга в AS3», которая, скорее всего, потребует следующую информацию.

Вам нужно будет хранить рейтинги в базе данных. Концепция, которую я использую (и, вероятно, все остальные), заключается в том, что вы храните записи, содержащие избирателя, присвоенный им рейтинг и то, за что они проголосовали, например:

Marty | 3 | hat.jpg
John  | 5 | hat.jpg
Simon | 1 | tasty-cereal.jpg

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

Например, рейтинг для hat.jpg можно найти в PHP следующим образом:

<?php

    $score = 0;
    $query = mysql_query("SELECT ratings.score FROM ratings WHERE image='$image_from_flash'");

    while($row = mysql_fetch_assoc($query))
    {
        $score += $row["score"];
    }

    $average = $score / mysql_num_rows($query);

    echo $average; // This will be sent back to AS3.

?>

Чтобы отправлять и получать оценки, вам нужно будет использовать URLLoader для связи с серверной технологией, такой как PHP. После этого мы поговорим с базой данных, вычислим среднее значение, как я упоминал выше, а затем отправим обратно в AS3 средний рейтинг для использования.

Если вам нужна информация о том, как работать с PHP + AS3 и отправлять информацию между ними, это совершенно другой вопрос, который потребует очень подробного ответа. Тебе лучше погуглить за информацией об этом.

Позвольте мне начать:

1 голос
/ 31 марта 2012

Вы можете подумать об этом как о слайдере громкости. например: у вас есть мувиклип из 5 звезд шириной 100 пикселей. Вы делаете маску шириной 100 пикселей, чтобы скрыть звезды. Настройте прослушиватель событий для MouseEvent.CLICK в мувиклипе stars и задайте ширину маски независимо от того, как определяется mouseX относительно общей ширины клипа. что-то вроде:

var relativeMouseX:int = mouseX - stars.x;  // you'll get a number between 0-100px

поэтому, если значение равно 67px, вы можете выполнить эту операцию:

67/100 = .67 * 5 = 3,35;

3,35 звезды будет рейтинг.

starsMask.width = relativeMouseX; //makes the mask's width reflect how many stars is showing.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...