Вторник, 22.07.2025, 07:42
Вы вошли как Гость Группа "Прохожий" | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Ende22  
Online Flash Radio плеер
Ende22 Дата: Четверг, 24.02.2011, 02:18 | Сообщение # 1
Группа: Администраторы
Сообщений: 92
Награды: 6
Репутация: 3126
Статус:
Создаём новый документ 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
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=[      
      [      
       "Europaplus",      
      "Kinkaardschok",      
      "Kiss fm" ,      
      "Радио Рекорд",      
      "Net Radio Adult",      
      "Net Radio Hot",      
      "Net Radio Garage" ,      
      "Net Radio Rap"      
      ],      
      [      
       "http://stream.netradio.by:8020/europaplus_128",      
       "http://stream.netradio.by:8020/kinkaardschok_192",      
       "http://stream.netradio.by:8020/kissfm128",      
       "http://stream.netradio.by:8020/radiorecord_192",      
       "http://stream.netradio.by:8000/adult/mp3/128",      
       "http://stream.netradio.by:8000/hot/mp3/128",      
       "http://stream.netradio.by:8000/garage/mp3/128",      
       "http://stream.netradio.by:8000/rap/mp3/128"      
       ]      
      ];      

      ///фон плеера      
      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. Если помучатся,можно усовершенствовать дизайн.



http://top-wan.at.ua
  • Страница 1 из 1
  • 1
Поиск:


Статистика Форума
Последние темыНовые пользователиЛучшие пользователи

1 AOMWAY Commander Goggles V1S R...

Ende22 -Автор (0)

2 Настройки TYRO109 XF5804 и Sma...

Ende22 -Автор (0)

3 EWRF e7087U Руководство пользо...

Ende22 -Автор (0)

4 NAZA описание функционала

Ende22 -Автор (0)

5 Naza Lite до Naza V2

Ende22 -Автор (0)

6 NAZA M LITE Manual RUS

Ende22 -Автор (0)

7 2-х осевой подвес, базовая нас...

Ende22 -Автор (0)

8 Ошибка: Отсутствует openal32.d...

Ende22 -Автор (0)

9 Черный экран после обновления ...

Ende22 -Автор (0)

10 Установка геймпада Logitech F7...

Ende22 -Автор (0)

11 Как убрать рекламу в Opera

Ende22 -Автор (1)

12 Как скачать видео с periscope?

Ende22 -Автор (0)

13 На каком движке работает сайт....

Ende22 -Автор (0)

14 Четыре проверенных способа ска...

Ende22 -Автор (2)

15 Продолжительность жизни аккуму...

Ende22 -Автор (0)

1 maxrose37 (Максим Шумейко)

13:49-12.07.2022

2 leonflanker (Леонид Злобин)

GM10:59-15.05.2022

3 vladsavramuz (Vladimir)

UA18:11-10.04.2022

4 hiv120997 (Игорь Хмельков)

21:04-11.03.2022

5 lalasaesal (Аоал Оаалал)

18:39-19.10.2021

6 niknik0308 (ybrbnf re[ktyrj)

10:51-30.09.2021

7 shotbymetsler (Петро Бампер)

22:20-09.07.2021

8 wuttichai240445 (Not't Wuttichai'i)

07:38-11.02.2021

9 catgreen94 (Никита Неизвестный)

10:51-09.03.2020

10 crower_abidin (abidin ceylan)

19:31-12.02.2020

11 germandryg (Герман)

KZ19:13-04.02.2020

12 julia281999 (Юлия Осинцева)

01:51-14.01.2020

13 arseniykhara (Арсений Хара)

08:52-23.08.2019

14 bangz111 (เทวาพิทักษ์ เพิ่มพูล)

12:01-20.01.2019

15 dondam (Damir Uralbekov)

09:41-17.12.2018

1 Ende22

UAРейтинг: 3126 Новостей: 0 Форум: 92

2 ARTUR

RUРейтинг: 2294 Новостей: 0 Форум: 48

3 GoB

RUРейтинг: 2110 Новостей: 0 Форум: 14

4 run

RUРейтинг: 2010 Новостей: 0 Форум: 0

5 casper

ITРейтинг: 1020 Новостей: 0 Форум: 1

6 Enon

UAРейтинг: 1000 Новостей: 0 Форум: 1

7 GhostFace

RUРейтинг: 152 Новостей: 0 Форум: 1

8 bobsik

UAРейтинг: 100 Новостей: 0 Форум: 0

9 Мари

RUРейтинг: 100 Новостей: 0 Форум: 0

10 Vitalii-5

RUРейтинг: 80 Новостей: 0 Форум: 0

11 Lafler

UAРейтинг: 50 Новостей: 0 Форум: 0

12 DriG

USРейтинг: 30 Новостей: 0 Форум: 3

13 apollo

UAРейтинг: 11 Новостей: 0 Форум: 0

14 Айли

RUРейтинг: 10 Новостей: 0 Форум: 0

15 Таня

UAРейтинг: 10 Новостей: 0 Форум: 0

 Rambler's Top100                                                                                                                                                                                                                                                                                                             top-wan.at.ua ® 2010 - 2022