Flash AS3 - SoundChannel错误#1009

时间:2015-01-15 13:20:04

标签: actionscript-3 flash audio soundchannel

如果这是一个简单的问题或解决方法,我会对Flash newb感到抱歉。 无论如何,我在某些功能方面遇到了问题。我注意到我只在尝试停止声道的功能上收到错误1009。以下是一些代码:

这是第一个场景的第一帧,只是设置我的频道。我的所有声音都在这里完成,但我不认为这些是一个问题。

  

import flash.media.Sound;
  import flash.media.SoundChannel;

     

var musicChannel:SoundChannel = new SoundChannel();
  var speechChannel:SoundChannel = new SoundChannel();
  var sfxChannel:SoundChannel = new SoundChannel();

以下是导致1009错误的其中一个按钮的示例:

  

function goHome(e:MouseEvent):void {
  speechChannel.stop();
  sfxChannel.stop();
  musicChannel.stop();
  gotoAndPlay(2, "TitleScreen")
  }

     

home.addEventListener(MouseEvent.CLICK, goHome);

现在让我感到困惑的是,昨晚我的计算机上运行的代码完全相同。我去大学的计算机上测试我的.swf,我的动画冻结了,所以我检查了Flash,这就是我得到的。

我在某些TweenMax上也遇到了同样的1009错误。是的,我确实导入了所有必要的内容,这些函数运行所需的所有文件都在.fla文件的根目录中。我知道这是因为,和其他错误一样,这些东西完全适用于我家里的电脑。我运行的是完全相同的.fla文件和我保存在计算机上的代码文件,我确实有' com'文件夹和' greenstock' swc文件与我的.fla在同一目录中,就像在我的电脑上一样,但我仍然看到1009这样:

  

import com.greensock.TweenLite;
  import com.greensock.TweenMax;

     

TweenMax.to(musicChannel, 2, {volume:0});

这一行再次引用了一个声道,所以我99%肯定它是这些问题的根源。我可以换掉音乐频道'在这段代码中用' Music1' (声音在第一帧中声明的声音)并且它可以使音乐保持正常,但每当我试图停止声音通道时它都会在我身上疯狂。

再次对不起,如果这很容易解决,但我很困惑,因为它昨晚工作正常。 Flash Player可能已经过时,但它是Adobe Flash Player 11,所以我不知道这是不是问题。现在我在大学,所以我不知道我在家里有什么版本。

感谢您的时间。

1 个答案:

答案 0 :(得分:-1)

SoundCahnnel可以为null,当它们出现时,您无法尝试补间其属性。处理它的一个简单方法是检查它们是否为空:

if(musicChannel)
{
    TweenMax.to(musicChannel, 2, {volume:0});
}

只有在调用Sound对象播放方法时才会生成SoundChannel对象,因此无需实例化它们:

var musicChannel:SoundChannel = new SoundChannel();//irrelevant piece of code
var musicChannel:SoundChannel;//correct