#actionscript-3 #timer #addchild
#actionscript-3 #таймер #addchild
Вопрос:
Для игры, которую мы создаем, нам нужно, чтобы видеоролик «всплывал» через определенное время, обычно где-то между 10 и 20 секундами. Если появляется этот видеоролик, таймер необходимо приостановить, пока видеоролик активен, и таймер необходимо перезапустить после исчезновения видеоролика. Кто-нибудь знает, как это сделать?
Ответ №1:
import flash.utils.setTimeout;
// Your Sprite / MovieClip
var clip:MovieClip;
// The time until you want to add the first one
var timeToAdd:uint = Math.random() * 20;
// This will be the timer
var _timer:uint;
// This will add us to the stage after the random time. Second variable is seconds, so we need to multiply by 1000.
_timer = setTimeout(addToStage, timeToAdd * 1000);
// Called when the timer expires
function addToStage():void{
clip = new MovieClip();
// You would need logic to decide when to remove it, but once it is removed this will fire
clip.addEventListener(Event.REMOVED_FROM_STAGE, onRemove);
}
// Called once removed
function onRemove(e:Event):void{
// Remove the event listener
clip.removeEventListener(Event.REMOVED_FROM_STAGE, onRemove);
// Restart the timer
timeToAdd = Math.random() * 20;
_timer = setTimeout(addToStage, timeToAdd * 1000);
}
Приведенный выше код добавит спрайт на сцену один раз в течение 0,001 — 20 секунд. Вам нужно будет добавить немного кода, чтобы удалить ваш спрайт (removeChild (clip)).
Комментарии:
1. Мне пришлось поместить _timer в функцию, чтобы это работало, но это отлично работает, большое вам спасибо! 🙂