我想在声音停止时停止这个yoyo运动。
这不是所有代码,而是重要部分:
我宣布了这个功能的范围:
var BB:Tween;
........
function BounceBeau()
{
var BB:Tween = new Tween(Beau,"y",Strong.easeOut,stage.stageHeight - BeauHeight,33,5,false);
BB.addEventListener(TweenEvent.MOTION_FINISH, PlayBB);
function PlayBB(e:TweenEvent):void
{
BB.yoyo();
}
}
BOUNCE随着声音和声音开始播出。
function PlaySound()
{
var ThemeSong:SoundChannel;
var s:Sound = new Sound(new URLRequest("MySound.mp3"));
ThemeSong = s.play();
...
BounceBeau();
...
ThemeSong.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
function onPlaybackComplete(event:Event):void
{
BounceBeauStop();
}
}
... 这个代码是,但我忘了发帖
function BounceBeauStop()
{
BB.stop();
}
我得到的错误: TypeError:错误#1009:无法访问空对象引用的属性或方法。
任何想法。 :)
答案 0 :(得分:4)
在BounceBeau()
中,将var BB:Tween
更改为BB
。您无意中通过在本地重新声明来隐藏BB
的声明。
function BounceBeau()
{
BB = new Tween( ...
...
答案 1 :(得分:1)
我相信你在这里得到了错误:
var ThemeSong:SoundChannel;
var s:Sound = new Sound(new URLRequest("MySound.mp3"));
ThemeSong = s.play();
因为您没有实例化新的SoundChannel
变量。然后,当您尝试播放声音并将其传递到通道时,后者未定义。我认为您应该尝试以这种方式更新您的代码:
var themeSong:SoundChannel = new SoundChannel();
var s:Sound = new Sound(new URLRequest("MySound.mp3"));
themeSong = s.play();
让我们知道它是否成功。祝你有美好的一天。