• Главная
    • обратная связь
    • о сайте
  • форум
  • статьи
  • скачать
  • скачать видео
  • поговорить с игроманом
  • подними настроение

Этот сайт посвящен игровой индустрии. Всего вам наилучшего! Команда games-net.3dn.ru

Вход Регистрация
Вы находитесь: Главная страница
Форма входа


E-mail:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Smith  
Форум » Школа » Flash-школа » Делам Флеш-Радио
Делам Флеш-Радио
Electro_Men
Оценить сообщение
Дата: Четверг, 03.02.2011, 08:49 | Сообщение # 1
Основатель под ником Electro_Men
Сообщений: 247
[ 40 ]
Offline
Приступим:
Создаём новый документ 550x400. В поле Document Class пропишем main.Main

В папке с проектом создаем папку main и в ней Новый as документ, называем его Main.

Графическая часть:

Рисуем кнопку play, жмём f8,выбираем movieClip, называем playBtn и импортируем для action script с таким же именем.

Тоже повторяем для кнопок stop, и следующая радиостанция. Имена даём stopBtn и nextBtn соответственно.
Рисуем задний фон для плеера, жмём f8,выбираем movieClip, называем radioBg, импортируем для action script. Внутри данного мувика создаём динамическое текстовое поле с инстансом name_txt.

Кнопки громкости
Создадим прямоугольник назовём volBar (MovieClip) затем выстраиваем в ряд 4 штуки и объединяем в один мувик, называем volBtn и ставим export for action script. Каждому из 4ёх мувиков даём инстанс имя от v1_btn до v4_btn.
Готово. Очищаем сцену, все компоненты плеер будут загружены программно.

Программная часть
В файле main.as пишем, тем самым импортируем класс плеера в наш основной класс (т.е плеер можно вставить в любую игру или страничку на as3 без особых усилий )

Code
package main{  
import flash.display.MovieClip;  
import main.radio.*;  
public class Main extends MovieClip {  
     var radioPlayer:Radio;  
     public function Main() {  
//размещаем плеер по координатам x=120, y =200  
      radioPlayer=new Radio(120,200);  
      addChild(radioPlayer);  
     }  
}  
}

В папке main создаём ещё одну папку radio и в ней создаём Radio.as Это класс с радио плеером. В нём пишем
Code
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;  
//Для работы с звуокм  
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=_x;  
BackGround.y=_y;  
addChild(BackGround);  
//позиционируем кнопки управления  
Play.x=_x+20;  
Play.y=_y+20;  
addChild(Play);  
Stop.x=_x+20;  
Stop.y=_y+20;  
addChild(Stop);  
Prev.x=_x+80;  
Prev.y=_y+15;  
Prev.scaleX=-1;  
addChild(Prev);  
Next.x=_x+260;  
Next.y=_y+15;  
addChild(Next);  
Vol.x=_x+310;  
Vol.y=_y+35;  
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) {  
if (MusicPlay==false) {  
if (s) {  
//закрываем канал если он открыт  
s.close();  
}  
//Получаем ссылку радиостанции из массива  
var nextTitle:Sound=new Sound(new URLRequest(Data[1][curChanel]));  
//Грузим её  
s=nextTitle;  
//Воспроизводим  
sc=s.play();  
//Указывем что музыка играет  
MusicPlay=true;  
//Обновляем кнопки  
update();  
}  
}  

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;  
}  
//Получаем ссылку радиостанции из массива  
var nextTitle:Sound=new Sound(new URLRequest(Data[1][curChanel]));  
//Грузим её  
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;  
}  
//Получаем ссылку радиостанции из массива  
var nextTitle:Sound=new Sound(new URLRequest(Data[1][curChanel]));  
//Грузим её  
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;  
}  
}  
}  
}

Жмём ctrl+enter и тестируем.
Вот и всё

Данный плеер – простой пример использования as3. Если помучатся,можно усовершенствовать дизайн.
Вот что когда-то вышло у меня:





Обновление..уже скоро..
① мод никогда не бывает закончен...kostia® 2011™
ツ
 
Napoleon_tmb
Оценить сообщение
Дата: Четверг, 03.02.2011, 16:07 | Сообщение # 2
Главный
Сообщений: 123
[ 6 ]
Offline
А что за программа?


 
Electro_Men
Оценить сообщение
Дата: Четверг, 03.02.2011, 19:10 | Сообщение # 3
Основатель под ником Electro_Men
Сообщений: 247
[ 40 ]
Offline
cs3(Actionscript3)




Обновление..уже скоро..
① мод никогда не бывает закончен...kostia® 2011™
ツ
 
Форум » Школа » Flash-школа » Делам Флеш-Радио
  • Страница 1 из 1
  • 1
Поиск:

Главная Форум Контакты RSS

Хороший сайт обо всем