Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Мучаюсь с mp3 player (http://www.flasher.ru/forum/showthread.php?t=122612)

avrile 15.03.2009 00:00

Мучаюсь с mp3 player
 
Может кто-нибудь может подсказать... делаю mp3 player.

Есть готовый основной файл и есть готовый mp3 player отдельным файлом. Как все это соединить? И то и другое отдельно работает :) а вместе? нужно все ж создавать плейер в основном файле?

Я понимаю что нужно начинать с чего-нибудь попроще изучение флеша, но это задание в универе и до конца марта нужно закончить... Буду очень вам благодарна, хотя бы если ткнете куда смотреть и что искать... Спасибо заранее.

serenkiy 15.03.2009 00:17

Что представляет из себя "готовый основной файл"? Если Вам нужно быстро создать плеер, найдите в гугле или на форуме (вроде есть) урок по созданию плеера и следуйте инструкциям. :)

avrile 15.03.2009 00:37

serenkiy, спасибо за внимание)

"готовый основной файл" - это основной файл (не знаю как его еще можно обозвать), в котором есть разные рубрики, и в каждом хотелось бы иметь плейер со своим собственным плей-листом.

Идея такова: т.к. я музыкант, то выбрала создание плейера "Музыкотерапия" (задание у нас - сделать тематичный плейер). В основном файле уже составила разные категории. Также нашла готовый и работающий!:) плейер. Теперь вот не знаю как этот плейер "прилепить" к каждой рубрике.

? озадачилась...

начала читать Мука, пока все это осилю...

готова всем помогающим потом подарить мой труд :)

serenkiy 15.03.2009 01:40

спрошу по-другому - в каком формате "основной файл" - это страница html? или код, написанный на actionscript?

avrile 15.03.2009 02:09

прошу прощения за некоректо-поставленный вопрос:)

основной файл - fla (подобие сайта с 5 рубриками)
плейер - тоже fla (+xml + mp3)

я вставила swf плейера на одну из страничек основного файла, но конечно же он не функционирует...

serenkiy 15.03.2009 22:25

Просто так объяснить что делать очень сложно, т.к. все плееры разные, методы работы с ними тоже отличаются. Если Вы сможете выложить исходный код, тогда уже можно будет подумать над решением проблемы.

avrile 15.03.2009 23:50

Вложений: 1
вот он родимый :)
он у меня в процессе редактирования что касается визуального аспекта, но так то он рабочий (т.е. фукнционирует отменно)..

serenkiy 15.03.2009 23:58

Эх, если можете, вышлите именно код, я не работаю в Adobe Flash, использую FlashDevelop, он не поддерживает данный формат.

avrile 16.03.2009 00:16

я не уверена что это весь..

Код AS1/AS2:

dd = new Sound();
mm = new Array();
// XMl code for loading URLs.
function loadXML(loaded) {
        if (loaded) {
                for (i2=0; i2<this.firstChild.childNodes.length; i2++) {
                        mm[i2] = this.firstChild.childNodes[i2].firstChild.nodeValue;
                        dd.loadSound(mm[0], true);
                }
        } else {
                trace("file not loaded!");
        }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("list.xml");
 
var i:Number = 0;
 
function playprev() {
        //        if (i>0) {
        //i -= 1;
        // this will make it play in repeat mode ,
        if (i == 0) {
                i = mm.length-1;
        } else {
                i -= 1;
        }
        dd.loadSound(mm[i], true);
        if (noprenext) {
                noplay();
        }
        list_mmc.list_p.list.selectedIndex = i;
}
function playnext() {
        i += 1;
        // this will make it play in repeat mode ,
        if (i>mm.length-1) {
                i = 0;
        }
        list_mmc.list_p.list.selectedIndex = i;
        dd.loadSound(mm[i], true);
        if (noprenext) {
                noplay();
        }
}
fscommand("allowscale", "false");
xx = bar._width;
orginal_width = bar._width;
_root.soundbtndis._visible = false;
_root.soundbtndis.disabled = true;
dd.setVolume(200);
this.onEnterFrame = function() {
        dd.onSoundComplete = function() {
                startoff();
                playnext();
        };
        t1 = int(dd.duration/1000/60);
        t1 = t1+" : "+int((dd.duration/1000-(t1*60)));
        ddf = int((dd.duration-dd.position)/1000/60);
        elapsed_sec = int((((dd.duration-dd.position)/1000/60)-ddf)*60);
        if (elapsed_sec<10) {
                elapsed_sec = "0"+elapsed_sec;
        }
        if (ddf<10) {
                ddf = "0"+ddf;
        }
        if (_root.stpd) {
                elapsed = _root.t1;
        } else {
                elapsed = ddf+" : "+elapsed_sec;
        }
        //mo=dd.position/1000
        //elapsed = 
        vol = dd.getVolume()+" %";
        dur = dd.duration;
        pos = dd.position;
        per = (pos/dur)*100;
        m = (pos/dur)*100;
        bar._width = (m*xx)/100;
        drag._x = _root.bar._width+_root.bar._x;
        //drag._y = 136;
        if (stpd) {
                xx = 0;
        } else {
                xx = orginal_width;
        }
        // function keys
        if (Key.isDown(67)) {
                pauseit();
        }
        if (Key.isDown(88)) {
                playit();
        }
        if (Key.isDown(86)) {
                stopit();
        }
        //**************************************                                                                                                                                       
        _root.shorba.art = "Artist :"+dd.id3.artist;
        _root.shorba.song = "Title :"+dd.id3.songname;
        _root.shorba.setMask(_root.loo7);
        // Handling undefined or null Tag values
        // Note this works with URL form like that d:\songs\song.mp3
        if (_root.shorba.art == "Artist :"+undefined || _root.shorba.art == "Artist :"+'') {
                _root.shorba.art = String(mm[i]);
                dotpos = _root.shorba.art.lastIndexOf('.');
                slashpos = _root.shorba.art.lastIndexOf('\\');
                _root.shorba.art = "Artist :"+_root.shorba.art.substring(slashpos+1, dotpos);
        }
        if (_root.shorba.song == "Title :"+undefined || _root.shorba.song == "Title :"+'') {
                _root.shorba.song = String(mm[i]);
                dotpos = _root.shorba.song.lastIndexOf('.');
                slashpos = _root.shorba.song.lastIndexOf('\\');
                _root.shorba.song = "Title :"+_root.shorba.song.substring(slashpos+1, dotpos);
        }
};
_root.information.setMask(_root.infomask);

Добавлено через 53 секунды
и еще

Код AS1/AS2:

// play button function
function startoff() {
        ply = true;
        stpd = false;
        _root.dd.stop();
        stopAllSounds();
        _root.dd.start();
        pus = false;
        if (!noprenext) {
                _root.information.info = "";
                _root.information.play();
                _root.information.info = "Playing";
        }
}
function playit() {
        ply = true;
        noprenext = false;
        stpd = false;
        _root.information.info = "";
        _root.information.play();
        _root.information.info = "Playing";
        if (listloaded) {
                if (pus && _root.pindex == i) {
                        _root.dd.start(position);
                        pus = false;
                } else {
                        _root.dd.stop();
                        stopAllSounds();
                        _root.dd.start();
                        item = _root.pindex;
                        i = item;
                        dd.loadSound(mm[item], true);
                        pus = false;
                }
        } else {
                if (pus) {
                        _root.dd.start(position);
                        _root.information.info = "Playing";
                        pus = false;
                } else {
                        _root.dd.stop();
                        stopAllSounds();
                        _root.dd.start();
                }
        }
}
//pause button function
function pauseit() {
        if (!_root.stpd) {
                position = _root.dd.position/1000;
                if (!pus) {
                        _root.dd.stop();
                        pus = true;
                        _root.information.info = "";
                        _root.information.play();
                        _root.information.info = "Paused";
                } else {
                        _root.dd.start(position);
                        pus = false;
                        _root.information.info = "Playing";
                }
        }
}
//stop button function
function stopit() {
        if (!stpd) {
                _root.dd.stop();
                stpd = true;
                noprenext = true;
                pus = false;
                _root.information.info = "";
                _root.information.info = "Stopped";
                _root.information.play();
        }
}
function noplay() {
        if (!stpd) {
                _root.dd.stop();
                stpd = true;
                //noprenext = true;
                pus = false;
        }
}

Добавлено через 7 минут
serenkiy, боюсь пошлете вы меня сейчас :confused:

если есть решение попроще, то согласна на все возможные варианты :) с одной стороны уже всех собак готова спустить на этого профа, но с другой, так хотелось бы покопаться и проникнуться этим чудом-программированием во флеше..

serenkiy 16.03.2009 00:35

Насколько я понял, в list.xml - список треков, а именно - пути к ним (в вашем случае они должны лежать в директории с флэш-проигрывателем). Через функцию playIt() мы запускаем текущий трек, через stopIt() останавливаем, playNext()/playPrev() -следующий/предыдущий трек соответственно.
Но возвращаясь к проблеме - как это все соединить - я не могу расписать все тонкости, но могу направить Ваши мысли в нужное русло. Тот же Мук очень поможет, читал его книгу - пишет все грамотно и понятно.
1. Прочитайте все про работу с классами. (займет около часа, понять основы - полчаса-час).
2. Вам нужно будет создавать у себя в проекте (там где будете размещать плеер) экземпляры этого плеера. Потребуется импорт в проект. Мук это рассматривает в самом начале книги.
3. Рекомендую посмотреть уроки, вроде "Импорт AS2.0 в AS3.0".

Ну и в принципе все, надеюсь Вы знаете основы, вроде работы с событиями, что бы обрабатывать нажатия на кнопки и т.п.

Кстати, надеюсь я правильно понял, Вы изучаете ActionScript 3.0?


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

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