AS3 newby here!AS3 - 获得错误#1063,预期1,即使它有效,也得到0?
我的舞台上有一个moviePip(thePlayer),它的类是'ThePlayer',而MovieClip里面有一个SimpleButton,它带有StopBtn类。这两个类都保存在一个名为'classes'的文件夹中。
'ThePlayer'类将声音加载到soundchannel然后播放,从'StopBtn'类中,我为已经在动画片段内的舞台上的按钮添加了一个事件监听器,然后停止soundchannel var set in班级'StopBtn'中的'ThePlayer'。
要做到这一点我传递“这个”的StopBtn()函数,以便能够控制好了的SoundChannel变量“ThePlayer”
按钮似乎完美地工作设置,但即时得到在此错误输出面板:
ArgumentError: Error #1063: Argument count mismatch on classes::StopBtn(). Expected 1, got 0.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at classes::ThePlayer()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
我相信,它认为没有什么被传递到了StopBtn类StopBtn()函数,但是当我运行该文件,并按下舞台上的停止按钮,它的工作原理.. 。
一直对我的头撞w所有这现在4天:(
这里是我的两个类代码:
ThePlayer.as
package classes
{
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.events.*;
public class ThePlayer extends MovieClip
{
//Link vars to classes for accessing vars here in different classes
public var _stopBtn:StopBtn;
// Public and private Vars
public var mySound:Sound = new Sound();
public var mySoundChannel:SoundChannel = new SoundChannel();
public var trackPosition:Number = 0;
public var isPlaying:Boolean = false;
//Constructor function
public function ThePlayer()
{
_stopBtn = new StopBtn(this);
mySound.load(new URLRequest("mp3_files/song.mp3"));
mySoundChannel = mySound.play();
isPlaying = true;
}
}
}
StopBtn.as
package classes
{
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.events.*;
public class StopBtn extends SimpleButton
{
var playerClass:ThePlayer;
public function StopBtn(recivedPlayerClass:ThePlayer)
{
playerClass = recivedPlayerClass;
playerClass.addEventListener(MouseEvent.CLICK, stopButtonFunction);
}
function stopButtonFunction(event:MouseEvent):void
{
playerClass.trackPosition = 0;
playerClass.mySoundChannel.stop();
playerClass.isPlaying = false;
//playerClass.pauseBtn.visible = false;
//playerClass.playPause.playBtn.visible = true;
}
}
}
谢谢您的帮助!
我相信你创造两个'StopBtn',第一个是你在动画片段内的舞台上定义的 - 它被创建并且构造函数没有参数,因此是错误。第二个是用'new'关键字实例化的,但从不添加为孩子。如果你想抑制错误并且不修复代码,你可以使用'public function StopBtn(recivedPlayerClass:ThePlayer = null)'将'recivedPlayerClass'设置为一个可选参数,然后检查null和'return;' –