Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   JSON/XML в as3 (http://www.flasher.ru/forum/showthread.php?t=169386)

ALEX ZONA 04.10.2011 08:15

JSON/XML в as3
 
Как сделать
запрос в (JSON) или (XML) ???

У меня просто есть плеер онлайн радио и для добавления некоторых функций необходимо загрузить JSON/XML с помощью доступных средств.
Как мне это сделать???

Кто нибудь подскажите очень срочно нужно!
Заранее спасибо :drinks:

goodguy 04.10.2011 08:27

URLRequest на адрес, с которого уже и должны отдаваться данные в формате XML или JSON

ALEX ZONA 04.10.2011 08:47

Ну это понято!
Мне не понятно как мне это все впихнуть в флеш т.е. у меня есть финч API плеера там только 2 файла fla и as........

Есть пример запроса в таком виде..... Я так понимаю это запрос в JSON
Цитата:

{"radio":{"name":"[hit-rock fm]","rating":"270","avatars":{"small":"http:\/\/fmhost.me\/storage\/radio\/12\/s_12.jpg","medium":"http:\/\/fmhost.me\/storage\/radio\/12\/m_12.jpg","normal":"http:\/\/fmhost.me\/storage\/radio\/12\/n_12.jpg"},"fans":"107","url":"http:\/\/fmhost.me\/hit-rock","tags":[{"tag":"pop"},{"tag":"dance"},{"tag":"rock"},{"tag":"electronic"},{"tag":"alternative"},{"tag":"female vocalists"},{"tag":"alternative rock"},{"tag":"indie"},{"tag":"rnb"},{"tag":"h"}],"sum-listeners":0,"track":{"title":"Alone Original Radio Edit","artist":"prezioso amp marvin"},"streams":[{"stream":{"name":"hit-rock_128","url":"http:\/\/fmhost.me:7777\/hit-rock_128.m3u","listeners":"0","mime-type":"audio\/mpeg","format":"MP3"}},{"stream":{"name":"hit-rock_192","url":"http:\/\/fmhost.me:7777\/hit-rock_192.m3u","listeners":"0","mime-type":"audio\/mpeg","format":"MP3"}},{"stream":{"name":"hit-rock_64","url":"http:\/\/fmhost.me:7777\/hit-rock_64.m3u","listeners":"0","mime-type":"audio\/mpeg","format":"MP3"}}]}}
Вопрос в том как мне его вставить в саму флешку?

Добавлено через 3 минуты
Есть еще такой вопрос Какие форматы поддерживает API? и ответ получил таков......

Вы можете получить данные в формате JSON или XML.
По умолчанию используется формат JSON, но при желании вы можете получать данные в формате XML, для этого необходимо указать в запросе переменную format=XML.

Добавлено через 19 минут
Вот есть параметры этого Примера запроса!

Цитата:

Параметры:
radio: id или алиас радиостанции.

Возвращаемые данные:
radio.name: Название радиостанции
radio.rating: Рейтинг радиостанции
radio.fans: Количество людей, которые добавили радиостанцию в любимые
radio.url: Ссылка на страницу радиостанции
radio.tags: Теги радиостанции (если найден хотя бы 1)
radio.sum-listeners: Общее количество слушателей на всех потоках
radio.track: Информация о проигрываемой композиции (если станция вещает и если трек определен)
track.title: Название трека
track.artist: Исполнитель трека
track.cover: Аватар исполнителя/любое другое изображение, относящееся к данному треку (если найдено)
streams: Список активных потоков радиостанции
stream.name: Название потока
stream.url: Ссылка на прослушивание потока
stream.mime-type: Mime-type потока
stream.format: Формат потока
stream.bitrate: Битрейт текущего потока (если определен)
stream.listeners: Количество слушателей на данном потоке
Мне нужено только вот это:

Цитата:

radio.track: Информация о проигрываемой композиции (если станция вещает и если трек определен)
track.title: Название трека
track.artist: Исполнитель трека
И вставить его в этот код:

Код AS3:

package {
    import flash.display.*;
    import flash.media.*;
    import flash.events.*;
    import flash.geom.*;
    import flash.net.*;
    import flash.ui.*;
    import flash.utils.*;
    import flash.text.*;
 
    public class Main extends Sprite {
        private var api_id:Number=ид приложения;// id вашего приложения
        private var url:String="ссылка ";// ссылка на ваше радио
        private var sound:Sound;
        private var music:SoundChannel;
        private var bounds:Rectangle;
        private var maxMove:Number;
        private var minuteTimer:Timer=new Timer(1000);
 
        public function Main():void {
            if (LoaderInfo(root.loaderInfo).parameters.api_id!=api_id) {
                is_copy_mc.is_copy_tf.text='Приложение находится здесь\nhttp://vkontakte.ru/app'+api_id;
                is_copy_mc.x=0;
                is_copy_mc.y=0;
            } else {
                var cm = new ContextMenu();
                cm.hideBuiltInItems();
                var p1:ContextMenuItem=new ContextMenuItem('«Радио»');
                var p2:ContextMenuItem=new ContextMenuItem('site.ru');
                p2.addEventListener(MouseEvent.CLICK, function(){;
                    navigateToURL(new URLRequest('http://site.ru'));
                });
                p2.separatorBefore=true;
                cm.customItems.push(p1,p2);
                this.contextMenu=cm;
 
 
                time_tf.autoSize=TextFieldAutoSize.LEFT;
 
 
                play_btn.addEventListener(MouseEvent.CLICK,playSound);
                pause_btn.addEventListener(MouseEvent.CLICK,pauseSound);
 
                addEventListener(Event.ENTER_FRAME, enterHandler);
                volumeSlider.addEventListener(MouseEvent.MOUSE_DOWN, startScroll);
 
                stage.addEventListener(MouseEvent.MOUSE_UP, stopScroll);
 
 
                maxMove=35;
                bounds=new Rectangle(volumeSlider.x,volumeSlider.y,- maxMove,0);
                var scrolling:Boolean=false;
 
                function startScroll(e:Event):void {
                    scrolling=true;
                    volumeSlider.startDrag(false,bounds);
                }
 
                function stopScroll(e:Event):void {
                    scrolling=false;
                    volumeSlider.stopDrag();
                }
 
                function enterHandler(e:Event):void {
                    if (scrolling==true) {
                        setVolume(1-((bounds.x-volumeSlider.x)/maxMove));
                    }
                }
 
                function setVolume(vol:Number) {
                    if (music!=null) {
                        var mod:SoundTransform = new SoundTransform();
                        mod.volume=vol;
                        music.soundTransform=mod;
                    }
                }
            }
        }
 
        private function playSound(e:MouseEvent):void {
            play_btn.visible=false;
            var request:URLRequest=new URLRequest(url+'?'+Math.random());
            sound = new Sound();
 
            sound.addEventListener(HTTPStatusEvent.HTTP_STATUS,onError);
 
            sound.load(request);
            music=sound.play();
            var mod:SoundTransform = new SoundTransform();
            mod.volume=1-((bounds.x-volumeSlider.x)/maxMove);
            music.soundTransform=mod;
 
            minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
            minuteTimer.start();
        }
 
        private function onError(event:Event):void {
            status_tf.text = 'Ошибка';
        }
 
        private function pauseSound(e:MouseEvent):void {
            play_btn.visible=true;
            music.stop();
            minuteTimer.stop();
            minuteTimer.reset();
            time_tf.text="0:00:00";
        }
 
        function onTick(event:TimerEvent):void {
            var sec=event.target.currentCount;
            var min=Math.floor(sec/60);
            var hour=Math.floor(min/60);
            sec%=60;
            if (sec<10) {
                sec='0'+sec;
            }
            min%=60;
            if (min<10) {
                min='0'+min;
            }
            hour%=24;
            time_tf.text=hour+":"+min+":"+sec;
        }
    }
}


goodguy 04.10.2011 09:21

Распарсить его какой-нибудь библиотекой для работы с джейсоном, например этой (хотя в 11 флешплеере будет встроенная поддрержка джейсона).
Код AS3:

var obj:Object = JSON.decode("сюда вставить эту json строку")

А потом, из получившегося объекта получать нужные переменные, например:
Код AS3:

trace(obj.radio.name) // в данном случае выдаст [hit-rock fm]


ALEX ZONA 04.10.2011 09:30

Чет я ничего не понял я не очень силен в этом всем...

Добавлено через 2 минуты
Не мог бы ты помочь мне все это осилить если конечно же есть желание и время...просто уже около месяца с этим выводом о треке мучаюсь!

Добавлено через 18 минут
У меня Есть мой пример на пхп возможно ли его как то подключить к флешке?


Часовой пояс GMT +4, время: 14:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.