Я пытаюсь сделать игру в кости во Flash / ActioScript 3. Я сделал все необходимое, и она работает гладко. Теперь я хочу улучшить пользовательский опыт. Например, когда настала очередь компьютера (катиться и делать вещи в соответствии со стоимостью кубика), я хочу оживить кубик. У кубика есть 6 ключевых кадров. Так, скажем, в течение 2 секунд кубик зациклит эти 6 кадров, затем остановится на значении (в зависимости от генератора случайных чисел). Почему-то я не могу сделать это так, как хочу. Как я могу написать функцию (и), чтобы, когда я говорю,
animateDice ()
он ничего не сделает, только оживит кубик за указанный интервал?
Обновление:
var timer:Timer = new Timer(10, 50);
myButton.addEventListener(MouseEvent.CLICK, onClick);
timer.addEventListener(TimerEvent.TIMER, animateDice);
function onClick(event: Event):void {
timer.start();
}
function animateDice(event: Event):void {
dice.play();
}
Например, я не понимаю, почему приведенный выше код не работает должным образом. Он работает правильно при первом нажатии, но не там после.
Обновление 2: я думаю, у меня все еще есть проблемы. Как приостановить работающий код до остановки таймера? (Да, есть обходной путь - поместить обработчики таймеров в другие таймеры и т. Д. Есть ли простой способ?
Может быть, это поможет:
Сначала мы видим бросок кубика (и окно сообщения информирует пользователя, что игра решит, кто начнет). Затем настала очередь Человека или Компьютера. Когда наступает очередь компьютера, сначала мы снова видим вращающийся кристалл, скажем, в течение 1 секунды. Затем это останавливается, и мы видим результат. Я новичок, и, может быть, я что-то упускаю, но из того, что я вижу, кажется, что все эти простые шаги (просто показ плашки в течение некоторого времени) означают много-много строк.
Если я использую простой таймер для анимации куба, сценарий продолжается, и все шоу исчезает.