2015-01-15 2 views
0

Я немного флэш-новичок, так извиняюсь, если это простая проблема или исправить. В любом случае у меня проблемы с некоторыми функциями. Я заметил, что получаю ошибку 1009 только о функциях, которые пытаются остановить звуковой канал. Вот некоторые из кода:Flash AS3 - Ошибка SoundChannel # 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, как и на моем ПК, м успокоение видя 1009 с этим:

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

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

Опять эта строка ссылается на звуковой канал, так что я 99% уверен, что это корень этих проблем. Я могу поменять «musicChannel» в этом фрагменте кода с помощью «Music1» (звук, объявленный в первом кадре с каналами), и он прекращает воспроизведение музыки, но всякий раз, когда я пытаюсь остановить звуковые каналы, это дерьмо на меня.

Снова извините, если это действительно просто исправить, но я довольно смущен, потому что он отлично работал вчера вечером. Flash Player может быть устаревшим, но это Adobe Flash Player 11, поэтому я не знаю, будет ли это проблемой. Сейчас я в колледже, поэтому я не знаю, какую версию у меня дома.

Спасибо за ваше время.

ответ

-1

SoundCahnnel может быть нулевым, и если вы не можете попытаться изменить свою собственность. Самый простой способ справиться с этим, чтобы проверить, являются ли они нуль или нет:

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

Также SoundChannel объектов создаются только тогда, когда метод звукового объекта игры называется так что нет необходимости их экземпляров:

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

А это сработало! Wow благодарит за быстрый и информативный ответ! Цените это много! – Dan

Смежные вопросы