Ошибка № 1063: Несоответствие числа аргументов - AS3 - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть очень простая анимация, которую я хочу сделать, но я застрял с этими ошибками

ArgumentError: Error #1063: Argument count mismatch on ReverseCirculation_Complete_Graham_1_ActionScript3_fla::MainTimeline/Play(). Expected 0, got 1.

Идея состоит в том, что анимация будет приостановлена, затем нажмите кнопку "Play", чтобы начать с возможностьюостановите или приостановите анимацию, прежде чем нажать «Далее», чтобы просмотреть продолжение анимации.

Мой код выглядит следующим образом:

//imports needed
stop();

import flash.display.MovieClip; 
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.Stage;

Play_btn.addEventListener(MouseEvent.CLICK,Play);
Stop_btn.addEventListener(MouseEvent.CLICK,Stop);
Next_btn.addEventListener(MouseEvent.CLICK,Next);

function Play()
{
blue1_mc.play();
red_mc.play();
green_mc.play();
}

function Stop()
{
blue1_mc.stop();
red_mc.stop();
green_mc.stop();
}

function Next(event:MouseEvent):void
{
gotoAndStop(2);
}

Большое спасибо Грэхему

1 Ответ

0 голосов
/ 25 сентября 2018

В AS3, когда вы определяете функцию следующим образом:

function Play()

Вы говорите, что для этой функции нет параметров / аргументов.В отличие от аналогичных языков на основе ECMAScript, таких как JavaScript, если вы в конечном итоге передадите параметр - например, выполните Play("Hello") - он выдаст ошибку.

При настройке обработчика события, как вы делаете здесь:

Play_btn.addEventListener(MouseEvent.CLICK,Play);

Это событие при запуске вызывает указанную функцию - Play - и передает ей объект MouseEvent, который описывает событие (например, объект, по которому щелкнули мышью, положение мыши и т. Д.)

Поскольку вы определили функцию Play, которая не принимает аргументы, вы получаете сообщение об ошибке, говорящее о том, что есть неожиданный аргумент.(то же самое для функции Stop).

Чтобы устранить проблему, вы можете сделать одну из следующих двух вещей:

  1. Добавить аргумент MouseEvent к функции:

    function Play(event:MouseEvent){
    
  2. Добавьте аргумент MouseEvent, но сделайте его необязательным :

    function Play(event:MouseEvent = null){
    

Второй параметр означает, чтовы все равно можете просто позвонить Play() без передачи аргумента.

...