我有点像Flash newb,所以很抱歉,如果这是一个简单的问题或解决方法。
无论如何,我在某些功能上遇到了问题。我注意到我仅在尝试停止声音通道的功能上遇到错误1009。这是一些代码:

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



这是导致1009错误的按钮之一的示例:



现在让我真正困惑的是,昨晚该代码在我的计算机上完美运行。我在大学的计算机上测试了.swf,并且动画冻结了,所以我 checkin Flash,这就是我得到的。

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



同样,此行引用了一个声音通道,因此我99%确信这是这些问题的根源。我可以将这段代码中的“musicChannel”与“Music1”(在通道的第一帧中声明的声音)交换出去,它会使音乐停止播放,但是每当我尝试停止声音通道时,它就会cra绕在我身上。

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

谢谢你的时间。

最佳答案

SoundCahnnel可以为null,当它们为null时,您不能尝试对其属性进行补间。一种简单的处理方法是检查它们是否为空:

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

另外,仅在调用Sound对象的play方法时才生成SoundChannel对象,因此无需实例化它们:
var musicChannel:SoundChannel = new SoundChannel();//irrelevant piece of code
var musicChannel:SoundChannel;//correct

09-08 04:41