Система опрокидывания - PullRequest
0 голосов
/ 15 января 2012

2nd: EDIT

Это почти делает это.Если счетчик достигает 350, и я перемещаю свою мышь вниз, он переходит на 250. Я просто хочу, чтобы он начал обратный отсчет.Т.е. 349, 348, 347 и тд.Что мне нужно изменить?

//Function
function countUp(e:TimerEvent):void{
if (mouseY < 180)
{
myMc.myTxt.text = (String(count+countTimer.currentCount));
}
else{
myMc.myTxt.text = (String(count-countTimer.currentCount));
}
}

РЕДАКТИРОВАТЬ: Что мне нужно написать в AS3, чтобы увеличить динамическое текстовое поле с шагом 1, если пользователь наводит курсор на верхнемполовина экрана и уменьшение с шагом 1, если пользователь наводит курсор на нижнюю половину экрана?Цель, это не игра.Это идея для приложения.

Оригинал: Мне нужна помощь или, скорее, большая помощь в разработке кода, который даст пользователю + баллы за то, что он находится наверхняя половина экрана и минус баллы за то, что находится в нижней части.

+


-

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

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

Чтобы прояснить сцену, стрелка на циферблате отслеживает мышь пользователя.Всегда указывая на это.Полоски при наведении на них изменяют цвет циферблата."73M" является статическим, также как "ТОЧКИ", но значение 380 является динамическим.Это та строка, на которую я должен повлиять.

Если что-то неясно, пожалуйста, не стесняйтесь спрашивать, я был на этом всю ночь, так что есть шанс, что я настолько увлечен этим, что не вижупрямо.

Вот изображение, если оно помогает: http://www.dropmocks.com/mBKQEe альтернативная ссылка: http://imgur.com/fMp2j Боюсь, у меня нет представителей, чтобы вставлять это.

Динамический текст

//Variables
var count:Number = 300;
var countTimer:Timer = new Timer(200,count);
var counter:TextField = myMc.myTxt;

//Event Listener
countTimer.addEventListener(TimerEvent.TIMER, countUp);

//Init
countTimer.start();
counter.text = "300";

//Function
function countUp(e:TimerEvent):void{
myMc.myTxt.text = (String(count+countTimer.currentCount));
}

И мышь, отслеживающая

// This is for the mouse tracking //
stage.addEventListener("mouseMove",directionFollow);

function directionFollow(e:MouseEvent):void {

var a1 = mouseY - direction1.y;
var b1 = mouseX - direction1.x;
var radians1 = Math.atan2(a1,b1);
var degrees1 = radians1 / (Math.PI / 180);
direction1.rotation = degrees1;
}

1 Ответ

1 голос
/ 15 января 2012

Ну, прямо сейчас вы берете среднее начальное количество (300) и модифицируете его на основе количества таймеров.Проблема с этим довольно проста.Таймер currentCount будет увеличиваться и никогда не падать.

Итак, допустим, currentCount равен 50. Тогда count + currentCount равно 350, а count - currentCount равно 250. Вместо того, чтобы изменять его таким образом, измените счетпеременная напрямую, например:

function countUp(e:TimerEvent):void {
    if (mouseY < 180) {
        count++;
    } else {
        count--;
    }
    mcMc.myTxt.text = String(count);
}

Это просто увеличит / уменьшит переменную count в зависимости от того, где находится мышь.В вашем исходном примере count никогда не менялся.Здесь ++ и -- увеличиваются или уменьшаются на единицу соответственно.Их также можно записать так:

count += 1;
count -= 1;

или вот так:

count = count + 1;
count = count - 1;

Все они означают одно и то же, но проще использовать ++ и --.

...