Полигон №109
Пятница, 17.05.2024, 06:16
Меню сайта
Категории раздела
Проги. [1]
Что и кто такие.
Учебники [2]
Различные учебники программирования.
Инфа
Всего на сайте:
Комментарии: 135
Новости: 3
Файлы: 47
Статей: 36
Теги
Мини-чат
Наш опрос
Полезная информация?
Всего ответов: 50
Главная » Статьи » Хитрости программирования. » Учебники

Плеер.
Создаём простенький проигрыватель, который сможет воспроизводить треки из "моих аудиозаписей".

1) Создаём папку с названием aclass и кидаем туда два файла DataProvider.as и MD5.as. В DataProvider.as вставляем ID приложения и секрет приложения (оба указаны на странице приложения)

Вот они aclass.rar ( 3.12к )

http://demiart.ru/forum/index.php?s=5c7c8a9acc600171ebce35d9c4160ca1&act=Attach&type=post&id=577684



2) Создаём новый документ Action Script 2.0.

3) Создаём два кадра. В первом кадре - текстовое поле с Instance name "wer". Во втором - ComboBox с Instance name "pole" кнопка с именем "playBtn" и два текстовых поля "tf1_txt" и "tf2_txt". Кнопка состоит из 3 кадров, к каждому из которых приписано stop(); (в первом кадре значок play, во втором - pause, в третьем опять play).
У меня второй кадр выглядит так:


4) В первом кадре пишем:
CODE 
stop();

import aclass.DataProvider; //импортируем класс DataProvider, чтобы осуществлять соединение с сервером

wer.selectable = false; //запрет на выделение текстового поля

if (is_app_user == 0) { //проверяем установил ли пользователь приложение к себе на страницу - параметр is_app_user передаётся в флешку автоматически при запуске приложения на сервере. принимает два значения: "0" и "1"
wer.text="Для запуска приложения необходимо установить его себе на страницу и открыть доступ к аудиозаписям.";
}else{
  dataProvider = new DataProvider(); //если приложение установлено, то создаём новый экземпляр объекта DataProvider для доступа к различным методам
 
 dataProvider.getAudios(function(success:Boolean) { //выполняем запрос getAudios (подробно http://vkontakte.ru/pages.php?o=-1&p=getAudios)
  if (success) { //если коннект осуществлён
  if(this.firstChild.nodeName != 'response'){ //получаем ответ в формате xml. Если первый тег НЕ response, то..
  wer.text="Для запуска приложения необходимо открыть доступ к аудиозаписям в настройках приложения."; //выводим в текстовое поле
  }else{
  _root.play(); //если всё ok, то переходим на следующий кадр
  }
  }
 });
};


5) Во втором кадре пишем:
CODE 
stop();

import aclass.DataProvider;

song=new Sound(); //создаём новый экземпляр объекта Sound для последующей работы со звуком

tf1_txt.selectable = false;
tf2_txt.selectable = false;

var audio_artist: String; //тут будем хранить исполнителя
var audio_title: String; //тут название песни
var audio_url: String; //адрес
var dataProvider = new DataProvider();

dataProvider.getAudios(function(success:Boolean) { 
if (success) {
if (this.firstChild.nodeName=='response') {
if (this.firstChild.hasChildNodes()) { //если первый тег response имеет внутри себя теги
 for (var aNode:XMLNode = this.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) { //листаем счётчиком все теги <audio>
 if (this.firstChild.firstChild.hasChildNodes()) {
  for (var bNode:XMLNode = aNode.firstChild; bNode != null; bNode=bNode.nextSibling) { //листаем счётчиком теги внутри <audio>
  switch (bNode.nodeName) {
  case 'artist': audio_artist = bNode.firstChild.nodeValue;break;
  case 'title': audio_title = bNode.firstChild.nodeValue;break;
  case 'url': audio_url = bNode.firstChild.nodeValue;break; //присваиваем этим переменным данные из xml
  }
  }
  pole.addItem({data:audio_url, label:audio_artist + " - " + audio_title}); //добавляем в ComboBox подряд элементы
 }
 }
}
else pole.text="Error occured: "+this.firstChild.firstChild.nodeValue; //выводим в случае ошибки
}
else pole.text="сonnection failed."; //выводим в случае ошибки
};
});

var cbListener:Object = new Object();
pole.addEventListener("change", cbListener); //создаём слушатель на ComboBox, реагирующий на change

cbListener.change = function (evt_obj:Object) { //выполняется при выборе трека
song.loadSound(evt_obj.target.selectedItem.data, true);song.stop();playBtn.gotoAndStop(1); //загружаем песню
tf1_txt.htmlText = '<b>'+evt_obj.target.selectedItem.label+'</b>'; //выводим название песни
System.setClipboard(evt_obj.target.selectedItem.data); //копируем адрес песни в буфер обмена :)
}

playBtn.onRelease = function () //обрабатываем кнопку play
{
if(playBtn._currentframe == 1){
 song.start();
 playBtn.gotoAndStop(2);
 }else{
if(playBtn._currentframe == 3){
  song.start(pause_pos/1000); //стартуем с паузы
 playBtn.gotoAndStop(2);
}else{
 if(playBtn._currentframe == 2){
  pause_pos=song.position; //создаём паузу
  song.stop();
  playBtn.gotoAndStop(3);
 }
 }
}
}

song.onSoundComplete = function () { //останавливаем песню по окончанию проигрывания
song.stop();
playBtn.gotoAndStop(1);
}
onEnterFrame = function (){
  if (song.position < song.duration) 
  {
  loadedPct = Math.round(100 * song.getBytesLoaded() / song.getBytesTotal());
  tf2_txt.text = loadedPct + "% загружено. "; //выводим статус загрузки
  return;
  }
}


Исходник можно скачать в каталоге файлов.

Автор: Granduca.

Категория: Учебники | Добавил: Барс (22.08.2009)
Просмотров: 716 | Комментарии: 1 | Теги: урок, Flahs, плеер | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Мини Профиль
Обитатели
Derskiytub
zolux
Grareleindile
Michaeler
Барс
docxters
Philippn
Bongasexiodob
Richardlam
AriimaPa
Часы|Календарь
Банер


код кнопки:

Друзья сайта
Furry

Furry World
Мир Фурри


Технические

TERNOX SITE
New Blitz3D


Команды|Студии

Банер студии LDF
Банеры
Furry

Банер VG Cats

Технические

TERNOX SITE
New Blitz3D
Blitz3d.at.ua

Статистика

Вы здесь: -й дн(я/ей)


Copyright MyCorp © 2024 Бесплатный хостинг uCoz