Как в этом коде можно запустить со старта функцию SoundStart() что сразу началось проигрывание?
Код AS3:
package main.radio{
///Библиотеки классов
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
public class Radio extends MovieClip {
////Массив с названиями и ссылками на радиостанции
private var Data:Array=[
[
"KISS FM",
"RADIO ROKS",
"TRANCE",
"RELAX",
"RAP",
"Drum & Bass",
"Русское Радио" ,
],
[
"http://radio.adsl.by:8000/kissfm128",
"http://radio.adsl.by:8000/roks_ua",
"http://stream.netradio.by:8000/trance/mp3/256",
"http://stream.netradio.by:8000/relax/mp3/256",
"http://stream.netradio.by:8000/rap/mp3/256",
"http://radio.adsl.by:8000/ps_drum",
"http://radio.adsl.by:8000/russianradioua",
]
];
///фон плеера
public var BackGround:radioBg=new radioBg();
///кнопка плей
public var Play:playBtn=new playBtn();
///кнопка стоп
public var Stop:stopBtn=new stopBtn();
//следующая
public var Next:nextBtn=new nextBtn();
// предыдущая
public var Prev:nextBtn=new nextBtn();
/// кнопка громкости
public var Vol:volBtn=new volBtn();
//Играет ли музыка
public var MusicPlay:Boolean=false;
public var kiss:Boolean = false;
private var nextTitle:Sound = new Sound();
//Для работы с звуокм
private var sc:SoundChannel = new SoundChannel();
private var s:Sound=null;
//Текущая радиостанция
private var curChanel:uint=0;
public function Radio(_x:Number=0,_y:Number=0) {
//позиционируем фон
BackGround.x=100;
BackGround.y=24;
addChild(BackGround);
//позиционируем кнопки управления
Play.x=65;
Play.y=57;
addChild(Play);
Stop.x=54;
Stop.y=51;
addChild(Stop);
Prev.x=160;
Prev.y=48;
Prev.scaleX=-1;
addChild(Prev);
Next.x=155;
Next.y=48;
addChild(Next);
Vol.x=193;
Vol.y=67;
addChild(Vol);
////////////////Слушатели
Play.addEventListener(MouseEvent.CLICK,SoundPlay);
Play.addEventListener(MouseEvent.MOUSE_OVER, startTooltipCounter);
Play.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip);
Stop.addEventListener(MouseEvent.CLICK,SoundStop);
Stop.addEventListener(MouseEvent.MOUSE_OVER, startTooltipCounter);
Stop.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip);
Next.addEventListener(MouseEvent.CLICK,SoundNext);
Next.addEventListener(MouseEvent.MOUSE_OVER, startTooltipCounter);
Next.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip);
Prev.addEventListener(MouseEvent.CLICK,SoundPrev);
Prev.addEventListener(MouseEvent.MOUSE_OVER, startTooltipCounter);
Prev.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip);
//Вешаю слушатели на кнопки регулятора звука
for (var i:Number=1; i<=4; i++) {
Vol['v'+i+'_btn'].addEventListener(MouseEvent.CLICK,VolumeChange);
}
//Обновляем текстовое поле и кнопки
update();
}
public function SoundPlay(e:MouseEvent) {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
if (MusicPlay==false) {
if (s) {
//закрываем канал если он открыт
s.close();
}
//Получаем ссылку радиостанции из массива
nextTitle.load(new URLRequest(Data[1][curChanel]));
nextTitle.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//Грузим её
s=nextTitle;
//Воспроизводим
sc=s.play();
//Указывем что музыка играет
MusicPlay=true;
//Обновляем кнопки
update();
}
}
public function SoundStart() {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
if (MusicPlay==false) {
if (s) {
//закрываем канал если он открыт
s.close();
}
//Получаем ссылку радиостанции из массива
nextTitle.load(new URLRequest(Data[1][curChanel]));
nextTitle.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//Грузим её
s=nextTitle;
//Воспроизводим
sc=s.play();
//Указывем что музыка играет
MusicPlay=true;
//Обновляем кнопки
update();
}
}
private function ioErrorHandler() {
//Останавливаю музыку
sc.stop();
if (s) {
//закрываем канал если он открыт
s.close();
}
//Указывем что музыка не играет
MusicPlay=false;
s=null;
//Обновляем кнопки
update();
}
private var n = 0;
private function onEnterFrame(event:Event) {
trace(n);
n++;
trace(MusicPlay);
trace(s);
trace(MusicPlay);
if(MusicPlay==false){
ioErrorHandler();
}
}
public function SoundStop(e:MouseEvent) {
//Останавливаю музыку
sc.stop();
if (s) {
//закрываем канал если он открыт
s.close();
}
//Указывем что музыка не играет
MusicPlay=false;
s=null;
//Обновляем кнопки
update();
}
public function SoundNext(e:MouseEvent) {
//Останавливаю музыку
sc.stop();
if (s) {
//закрываем канал если он открыт
s.close();
}
//Указывем что музыка не играет
MusicPlay=false;
///Если текущая радиостанция, последняя в списке, перескакиваю на первую
if (curChanel==Data[1].length-1) {
curChanel=0;
} else {
//иначе просто плюсую
curChanel+=1;
}
//Получаем ссылку радиостанции из массива
nextTitle.load(new URLRequest(Data[1][curChanel]));
nextTitle.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//Грузим её
s=nextTitle;
//Воспроизводим
sc=s.play(0);
//Указывем что музыка играет
MusicPlay=true;
//Обновляем текстовое поле
update();
}
public function SoundPrev(e:MouseEvent) {
//Останавливаю музыку
sc.stop();
if (s) {
//закрываем канал если он открыт
s.close();
}
//Указывем что музыка не играет
MusicPlay=false;
///Если текущая радиостанция меньше, чем минимальная в списке, перескакиваю на последнюю
if (curChanel<=0) {
curChanel=Data[1].length-1;
} else {
//иначе просто отнимаем
curChanel-=1;
}
//Получаем ссылку радиостанции из массива
nextTitle.load(new URLRequest(Data[1][curChanel]));
nextTitle.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//Грузим её
s=nextTitle;
//Воспроизводим
sc=s.play(0);
//Указывем что музыка играет
MusicPlay=true;
//Обновляем текстовое поле
update();
}
private function update() {
//Обновляем текстовое поле и отображаем название радиостанции
BackGround.name_txt.text=Data[0][curChanel];
///Показываем кнопку stop если play нажата и наоборот
if (MusicPlay==true) {
Play.visible=false;
Stop.visible=true;
} else {
Play.visible=true;
Stop.visible=false;
}
}
////Для изменения прозрачности кнопок при наведении
private function startTooltipCounter(e:MouseEvent):void {
e.currentTarget.alpha=0.6;
}
private function hideTooltip(e:MouseEvent):void {
e.currentTarget.alpha=1;
}
///Меняем звук в зависимости от того какая кнопка нажата
private function VolumeChange(e:MouseEvent):void {
var mod:SoundTransform = new SoundTransform();
//переменная хранящая имя нажатой кнопки
var presedV:String;
//получаю имя нажатой кнопки
presedV=String(e.currentTarget.name);
//Регулирую звук
mod.volume =(Number(presedV.substr(1,1))-1)*0.33 ;
//применяю громкость к звуковому каналу
sc.soundTransform=mod;
///циклы для кнопок звука
for (var i:Number=1; i<=4; i++) {
Vol['v'+i+'_btn'].alpha=0.3;
}
for (i=1; i<=(Number(presedV.substr(1,1))-1)+1; i++) {
Vol['v'+i+'_btn'].alpha=1;
}
}
}
}