错误 #1063:参数计数不匹配 - AS3

Error #1063: Argument count mismatch - AS3

我想制作一个非常简单的动画,但遇到了这些错误

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

想法是暂停动画,然后单击 "play" 按钮开始使用停止或暂停动画的功能,然后单击 "Next" 预览继续的动画。

我的代码如下所示:

//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);
}

非常感谢 格雷厄姆

在 AS3 中,当您像这样定义一个函数时:

function Play()

你告诉它这个函数没有parameters/arguments。与类似的基于 ECMAScript 的语言不同,例如 JavaScript,如果您最终传递了一个参数——例如执行 Play("Hello")——它会抛出一个错误。

当您设置事件处理程序时,就像您在此处所做的那样:

Play_btn.addEventListener(MouseEvent.CLICK,Play);

该事件在触发时调用指定的函数 - Play - 并向其传递描述事件的 MouseEvent 对象(例如单击的对象、鼠标位置等)

由于您已将 Play 函数定义为不接受任何参数,因此您会收到错误消息,指出存在意外参数。 (与停止功能相同)。

要解决此问题,您可以执行以下两项操作中的一项:

  1. 向函数添加 MouseEvent 参数:

    function Play(event:MouseEvent){
    
  2. 添加 MouseEvent 参数,但使其成为可选

    function Play(event:MouseEvent = null){
    

第二个选项,意味着您仍然可以简单地调用 Play() 而无需向其传递参数。