首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闪存AS3 - SoundChannel错误#1009

闪存AS3 - SoundChannel错误#1009
EN

Stack Overflow用户
提问于 2015-01-15 13:20:03
回答 1查看 180关注 0票数 0

我有点像Flash新闻,所以如果这是一个简单的问题或修复,我很抱歉。不管怎样,我在某些功能上有问题。我注意到,我只在试图停止声音通道的函数上出现了错误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,这就是我得到的。

我也得到了同样的1009错误,在一些TweenMax的东西。是的,我导入了所有必需的文件,这些函数运行所需的所有文件都在.fla文件的根目录中。我之所以知道这一点,是因为,和另一个错误一样,这些东西在我家里的电脑上运行得很好。我正在运行完全相同的.fla文件和代码文件,我保存在我的计算机上,我确实有'com‘文件夹和'greenstock’swc文件在与我的.fla相同的目录中,就像在我的PC上一样,但我仍然看到1009与此有关:

import com.greensock.TweenLite; import com.greensock.TweenMax; TweenMax.to(musicChannel, 2, {volume:0});

再次,这一行是指一个声音频道,所以我99%肯定这是这些问题的根源。我可以在这段代码中用'musicChannel‘(在第一个帧中声明的声音与频道)交换'Music1’,它可以很好地停止音乐,但是每当我试图停止声音频道时,它就会向我发出声音。

再次抱歉,如果这真的是简单的修复,但我很困惑,因为它昨晚运行良好。Flash播放器可能已经过时,但它是11,所以我不知道这是否是问题所在。现在我在上大学,所以我不知道家里有什么版本。

耽误您时间,实在对不起。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-15 13:30:03

SoundCahnnel可以为null,当它们为null时,您不能尝试在它们的属性之间切换。处理这些问题的一个简单方法是检查它们是否为空:

代码语言:javascript
复制
if(musicChannel)
{
    TweenMax.to(musicChannel, 2, {volume:0});
}

另外,只有在调用声音对象play方法时才生成SoundChannel对象,因此不需要实例化它们:

代码语言:javascript
复制
var musicChannel:SoundChannel = new SoundChannel();//irrelevant piece of code
var musicChannel:SoundChannel;//correct
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27964383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档