错误 #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的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 模型出现错误:列计数与第 2 行的值计数不匹配