ошибка при добавлении кнопки воспроизведения музыки в существующий шаблон flash xml as3.0

Я пытаюсь отредактировать существующий шаблон flash. Использование Flash CS6 и ActionScript 3.0 --- это что-то новое в этом...

У меня был клип нижнего колонтитула в исходном файле. Я отредактировал и добавил туда две кнопки. Основной .fla — это имя шаблона, который имеет один слой и слой действий, определяемый и управляемый с помощью main.as.

Я смог успешно воспроизвести музыку, написав здесь на слое действий, используя этот скрипт:

var music:Sound = new Sound(new URLRequest("music.mp3"));
var sc:SoundChannel = music.play();

Звук играет хорошо. Какая проблема, с которой я сталкиваюсь, заключается в добавлении кнопки воспроизведения и остановки сейчас. Для этого я использовал следующий скрипт:

import flash.events.Event;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.MouseEvent;

var music:Sound = new Sound(new URLRequest("music.mp3"));
var sc:SoundChannel = music.play();

btnStop.addEventListener(MouseEvent.CLICK, stopMusic);

function stopMusic(Event:MouseEvent):void{
    sc.stop;
}

btnPlay.addEventListener(MouseEvent.CLICK, playMusic);
function playMusic(Event:MouseEvent):void{
    sc = music.play();
}

Здесь я получаю ошибку:

Сцена 1, «Действия» слоя, Кадр 1, Строка 10 1061: Вызов возможно неопределенного метода addEventListener через ссылку со статическим типом Class.

Подскажите как исправить...


person Jayesh    schedule 24.07.2012    source источник


Ответы (1)


Я постараюсь направить вас любезно.

Ваша ошибка говорит вам, что в вашем классе btnStop нет статического метода с именем addEventListener. когда вы даете mc имя, он создает новый класс. то, что ты делаешь, похоже на то, что ты делаешь....

Sound.play();

когда вам нужна музыка.play();

чтобы исправить это, нажмите на свою кнопку в части дизайна, перейдите вправо, на панели свойств, и вам нужно дать вашей кнопке имя экземпляра «btnStop». Вам нужно будет сделать то же самое с кнопкой btnPlay. теперь, когда вы вызываете btnStop в своем коде, вы будете вызывать экземпляр кнопки, а не сам класс.

кроме того, в вашей функции stopMusic у вас должно быть:

sc.stop();

вместо:

sc.stop;

Кроме того, имена ваших параметров в ваших двух функциях не могут быть «Событие». Событие — это имя класса в AS3 API. попробуйте использовать имя параметра «e» или «event» (регистр имеет значение).

person Travis    schedule 24.07.2012