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;' –