我是as3的新手。我知道这个错误:
内部名称空间中的定义事件存在冲突。
我用的是相同的编码但场景不同。我换了第二幕。
var mysound:bila =new bila()这是我第一幕的代码,只有在第一幕中才能成功:
var isItPlaying:Boolean = true;
var lastposition:Number = 0;
var mysound:izhar = new izhar();
var soundchannel:SoundChannel = new SoundChannel();
soundchannel = mysound.play(0,0);// playing sound in the channel
soundchannel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete1);
function onPlaybackComplete1(event:Event):void
{
lastposition = 0;
soundchannel.stop();
btn.btn_pause.visible = false;
trace("finished");
isItPlaying=false;
}
/************end of part 1********/
btn.addEventListener(MouseEvent.CLICK, playsound);*
function playsound(event:MouseEvent):void*
{
if (! isItPlaying)
{
soundchannel = mysound.play(lastposition,0);
btn.btn_pause.visible = true;
isItPlaying = true;
}
else
{
lastposition = soundchannel.position;
soundchannel.stop();
btn.btn_pause.visible = false;
/*trace(lastposition.toFixed(0), mysound.length.toFixed(0));*/
isItPlaying = false;
}
soundchannel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);*
function onPlaybackComplete(event:Event):void
{
lastposition = 0;
soundchannel.stop();
btn.btn_pause.visible = false;
trace("finished");
isItPlaying=false;
}
}发布于 2015-07-31 21:29:54
冲突是因为您在同一范围内声明两个名称相同的变量。
将event变量声明为playsound函数中的参数。然后有一个嵌套函数onPlaybackComplete,它声明一个具有相同名称的参数。
要解决这个问题,可以将其中一个参数重命名为其他参数,或者将onPlaybackComplete函数移出playsound函数,使其具有自己的作用域。
我更喜欢第二个选项,除非出于某些特定原因需要嵌套该函数。
https://stackoverflow.com/questions/31751467
复制相似问题