Передача e: MouseEvent в качестве аргумента через setInterval - PullRequest
0 голосов
/ 26 июня 2010

Так что у меня есть эта функция

capture_mc.buttonMode = true;
capture_mc.addEventListener(MouseEvent.CLICK,captureImage);

function captureImage(e:MouseEvent):void { 
//lalalala

}

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

setInterval(captureImage,2000,e:MouseEvent);

но это приводит к следующей ошибке

1084: Syntax error: expecting rightparen before colon.

Что не так? И я новичок в AS.

Ответы [ 2 ]

2 голосов
/ 26 июня 2010

Во-первых, поскольку это AS3, вы должны использовать Timer и TimerEvent .Я покажу вам, как в примере.

Теперь вам нужно разделить ваши функции:

edit: Я обновил это, чтобы сделать его более безопасным на основе@ (Хуан Пабло Калифано) предложения.Я бы сохранил тот же таймер навсегда, если время не изменится.

// first param is milliseconds, second is repeat count (with 0 for infinite)
private var captureTimer:Timer = new Timer(2000, 0);
captureTimer.addEventListener(TimerEvent.TIMER, handleInterval);

function handleClick(event:MouseEvent):void
{
    // call here if you want the first capture to happen immediately
    captureImage();

    // start it
    captureTimer.start();
}

function handleInterval(event:TimerEvent):void
{
    captureImage();
}

function captureImage():void
{
    // lalalala
}

Вы также можете остановить таймер с помощью captureTimer.stop(), когда захотите.

1 голос
/ 26 июня 2010

Проблема в том, что вы должны использовать синтаксис parameterName:ParameterType только при объявлении формальных параметров (или при объявлении var с и const с). Это означает, что это действительно только тогда, когда вы определяете функцию:

function func(paramName:Type){
}

Когда вы вызываете функцию, вам не нужно указывать тип аргументов.

Итак, ваш вызов функции должен выглядеть так:

setInterval(captureImage,2000,e);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...