остановка йойо () Tween внутри функции - PullRequest
0 голосов
/ 04 марта 2012

Я хочу остановить это движение йо-йо, когда звук прекращается.

Это не весь код, а важные части:

Я ЗАЯВИЛ ВАРИ ВНЕ ФУНКЦИИ:

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();
           }

}

СЧЕТ НАЧИНАЕТСЯ С ЗВУКА И ОСТАНАВЛИВАЕТСЯ КОГДА-ЛИБО.

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();
}

ОШИБКА, которую Я ПОЛУЧИЛ: Ошибка типа: Ошибка # 1009: Не удается получить доступ к свойству или методунулевая ссылка на объект.

Любые мысли.:)

Ответы [ 2 ]

4 голосов
/ 04 марта 2012

В вашем BounceBeau() измените var BB:Tween на BB. Вы непреднамеренно скрываете декларацию BB, изменяя ее местное назначение.

function BounceBeau()
{
    BB = new Tween( ...
    ...
1 голос
/ 04 марта 2012

Я полагаю, вы получите эту ошибку здесь:

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();

Дайте нам знать, если это сработает. Хорошего дня.

...