我得到错误1026这是“构造函数必须是实例方法”,我不知道为什么。我正在创建一个媒体播放器类型的程序,并且在我的音乐部分遇到问题。在此之前,我创建了一个功能音乐播放器,并将代码复制到我的新项目中。现在唯一不同的是代码处于状态而不是main.mxml文件。这是我的代码下面,我收到错误,它说:“公共音乐:声音;”我不明白为什么我得到这个错误,任何帮助将不胜感激!在AS3中接收错误1026,不知道为什么
<fx:Declarations>
<fx:XML id="musicXML" source="data/musak.xml" />
<s:XMLListCollection id="musicCollection" source="{musicXML.song}" />
</fx:Declarations>
<s:HGroup>
<s:DataGrid id="musicGrid" dataProvider="{musicCollection}" click="onClick()" />
<local:MusicPosition id="mProgress" width="319" height="83"/>
<s:VGroup height="55">
<s:Label text="Now playing: {[email protected]}" />
<s:Label id="txtPosition" width="91"/>
</s:VGroup>
</s:HGroup>
<s:Button x="146" y="93" label="play" click="playMusic()"/>
<s:Button x="270" y="93" label="pause" click="pauseMusic()"/>
<fx:Script>
<![CDATA[
//set your variables
public var music:Sound;
[Bindable]public var musicChannel:SoundChannel;
public var pausedTime:Number = 0;
public function onClick():void {
if(musicChannel) {
musicChannel.stop();
//clean up the variables
music = null;
musicChannel = null;
}
music = new Sound();
music.load(new URLRequest(musicGrid.selectedItem.file.toString()));
music.addEventListener(Event.COMPLETE, onMusicLoad);
}
public function onMusicLoad(e:Event):void {
mProgress.update(0);
//new channel
musicChannel = music.play();
}
protected function onE(e:Event):void {
if(musicChannel) {
txtPosition.text = millisecondsToSeconds(musicChannel.position).toString() + "/" +
millisecondsToSeconds(music.length).toString();
mProgress.update(musicChannel.position/music.length);
mProgress.alpha = 1;
} else
mProgress.alpha = 0;
}
protected function millisecondsToSeconds(milliseconds:Number):Number {
return Math.round(milliseconds/1000);
}
public function pauseMusic():void {
if(musicChannel) {
pausedTime = musicChannel.position;
musicChannel.stop();
}
}
public function playMusic():void {
if(musicChannel) {
musicChannel = music.play(pausedTime);
}
}
]]>
</fx:Script>
此代码所在组件的名称是什么?什么是完整的组件?它是编译时错误还是运行时错误?例如,如果这是一个名为music的类,则可能会尝试创建一个名为'music'的变量。 – JeffryHouser 2013-04-23 03:12:56
我......觉得很愚蠢。这个班也被命名为音乐。更改了变量名称,它工作。谢谢你为我指出这一点! – user2220653 2013-04-23 03:37:55
为了避免将来出现这些问题(尽管显然不是完全的,要小心你的名字),所有的**类都应该大写,而所有的**函数和对象名应该是camelcase,但是以一个小写字母。只有例外与常量有关(通常是全部大写,并用下划线分隔) – 2013-04-23 04:13:54