в основном, у меня есть функция, называемая setEnemies, это порождает множество врагов я решаю так:AS3 - Передача функции с переменной через таймер
public function Main()
{
setEnemies(3);
}
Вот что setEnemies:
private function setEnemies(numbers:Number):void
{
for (var i:int = 0; numbers > i; i++)
{
_Enemy = new Enemy(_player.x, _player.y);
addChild(_Enemy);
addChild(_Enemy.rocket); // add enemy rocket to stage
_Enemy.isAlive = true;
enemies.push(_Enemy);
}
}
Пока это работает.
Ну, когда враг умирает, я хочу, чтобы игра ждать в течение 1 секунды, а затем икра больше 1 Врага, как это:
var spawnTimer:Timer; // Spawn enemy timer.
spawnTimer = new Timer(1000, 1);
spawnTimer.addEventListener(TimerEvent.TIMER, setEnemies(1));
spawnTimer.start();
Но я получаю следующее сообщение об ошибке:
«неявное принуждение значения типа void для несвязанного типа Функция. spawnTimer.addEventListener (TimerEvent.TIMER, setEnemies (1)); "
Почему он ведет себя так? и, конечно, я, вероятно, найду еще один способ, чтобы он подождал секунду и появился, но этот путь мне кажется наиболее естественным. Благодарим вас за время.
Это работает, но я получаю странное предупреждение: Предупреждение: возвращаемое значение для функции «анонимный» не имеет объявления типа. – RunningFromShia
Попробуйте положить «: void» после функции() для анонимной функции. – etchesketch
Вам также нужен аргумент события: 'function (e: TimerEvent): void {}' – Aaron