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

Posted

技术标签:

【中文标题】错误 #1063:参数计数不匹配 - AS3【英文标题】:Error #1063: Argument count mismatch - AS3 【发布时间】:2019-03-01 02:35:32 【问题描述】:

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

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

这个想法是一个动画将被暂停,然后点击“播放”按钮开始,可以在点击“下一步”预览继续的动画之前停止或暂停动画。

我的代码如下所示:

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

非常感谢 格雷厄姆

【问题讨论】:

您将event:MouseEvent 参数添加到您的Next() 函数中。您的其他 2 个功能也需要存在此参数。这就是错误试图告诉你的。它试图调用Play 方法并向其传递一个参数,但是因为您定义该方法不接受参数:错误。 我明白了.... 我需要 NEXT 按钮来播放舞台上的下一个场景(因此是 gotoandstop),我还有另外两个按钮可以在舞台上播放动画.. 不太确定是什么我可以改变tbh。 【参考方案1】:

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

function Play()

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

当你设置一个事件处理程序时,就像你在这里做的那样:

Play_btn.addEventListener(MouseEvent.CLICK,Play);

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

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

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

    向函数添加 MouseEvent 参数:

    function Play(event:MouseEvent)
    

    添加一个 MouseEvent 参数,但使其可选

    function Play(event:MouseEvent = null)
    

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

【讨论】:

+1 你的明星! - 原来是播放和停止按钮中缺少 MouseEvent 功能。甚至没有想到他们。谢谢@BadFeelingAboutThis

以上是关于错误 #1063:参数计数不匹配 - AS3的主要内容,如果未能解决你的问题,请参考以下文章

AS3 Flash Builder 错误 参数数量不正确

SQL 错误列计数与第 1 行的值计数不匹配

错误消息(列计数与第 1 行的值计数不匹配)[重复]

Codeigniter 模型出现错误:列计数与第 2 行的值计数不匹配

错误代码:1136。列数与第 1 行的值计数不匹配,我找不到错误

为啥在第一次 Fetch 后出现字段计数不匹配错误?