Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   xml mp3 проигрыватель... (http://www.flasher.ru/forum/showthread.php?t=88125)

JuNkitsME 17.11.2006 16:01

xml mp3 проигрыватель...
 
как сделать кнопки play stop pause? (воспроизведение музыки из xml файла)

El Scream 17.11.2006 16:04

www.gotoAndLearn.com
Здесь есть по этой теме уроки.

JuNkitsME 18.11.2006 10:38

El Scream:
ты сам этот урок пробовал?..
я просто сделал всё как там показано, выдаёт ошибку в финальной стадии, когда делаю test movie.... пишет

Error opening URL "file:///C|/1/undefined"

JuNkitsME 18.11.2006 12:41

есть такой скрипт:
Код:

import mx.utils.Delegate;
import mx.controls.*;
import mx.managers.PopUpManager;
import mx.containers.Window;


var xml_path:String="playlist/playlist.xml";
var xml:XML=new XML();
var playListArray:Array=new Array();
var sound:Sound=new Sound();
var loadingIntervalID:Number=0;
var playingIntervalID:Number=0;
var currentFileName:String=""
xml.ignoreWhite=true;

xml.onLoad=Delegate.create(this,onPlayListLoad);
sound.onLoad=Delegate.create(this,onSoundLoad);
sound.onID3=Delegate.create(this,onSoundID3);
sound.onSoundComplete=Delegate.create(this,onSoundComplete);
playList.addEventListener("change", Delegate.create(this,onPlayListChange));
seekBar.addEventListener("sliderChanged",  Delegate.create(this,onSeekChange));
volumeBar.addEventListener("sliderChanged",  Delegate.create(this,onVolumeChange));
fileInfoButton.addEventListener("click",  Delegate.create(this,onSettingsButtonClick));

stopAll();
xml.load(xml_path);
initStyles();

function onSettingsButtonClick():Void{
    var win:MovieClip = PopUpManager.createPopUp(this, Window, true);
    win.contentPath="dataGridClip"
    win.addEventListener("click", Delegate.create(this,onWindowClick));
    win.addEventListener("complete", Delegate.create(this,onWindowComplite));
    win.closeButton=true;
}
function onWindowComplite(eventObject:Object):Void{
    var win:MovieClip=eventObject.target;
    win.title="Информация о тегах ID3 "+currentFileName;
    var dataGrid:DataGrid=win.content.createClassObject(DataGrid, "dataGrid", win.content.getNextHighestDepth(), {columnNames:["name", "score"]});
    dataGrid.setSize(380, 120);
    for (var i in sound.id3){
        var item_obj:Object = {tagName:i, value:sound.id3[i]};
        dataGrid.addItem(item_obj)
    };
    win.setSize(win.content._width+8,  win.content._height + 35);
    win.move(10, 5);
}

function onWindowClick(eventObject:Object):Void{
    eventObject.target.deletePopUp()
}
function onVolumeChange():Void{
  sound.setVolume(volumeBar.valueActual)
}

function onSeekChange():Void{
  sound.stop();
  sound.start(seekBar.valueActual)
}

function onPlayListChange(evt_obj:Object):Void {
    currentFileName=playListArray[evt_obj.target.selectedIndex].name;
    sound.loadSound(playListArray[evt_obj.target.selectedIndex].path, false);
    loadingIntervalID=setInterval(Delegate.create(this,checkLoading),100);
}

function onSoundID3():Void{

}
function onSoundComplete():Void{
    sound.start();
}

function onSoundLoad(success:Boolean):Void{
  stopAll();
  if(success){
      sound.start();
      setInfoText("Файл "+currentFileName+"успешно загружен");
      playingIntervalID=setInterval(Delegate.create(this,checkPlaying),10);
      fileInfoButton.enabled=true;
  }else{
      Alert.show("Ошибка: невозможно загрузить файл.", "Внимание ошибка", Alert.OK );
      setInfoText("Ошибка при загрузке файла.");
  }
}
function onPlayListLoad(success:Boolean):Void{
    playListArray=new Array();
    playList.removeAll();
    if(success){
        for(var i:Number=0;i<xml.firstChild.childNodes.length;i++){
          var node:XMLNode=xml.firstChild.childNodes[i];
          playListArray.push({name:node.attributes.name, path: node.attributes.path});
          playList.addItemAt(i,{label:node.attributes.name, path: node.attributes.path});
        }
    }else{
        Alert.show("Ошибка: невозможно загрузить Play list по пути: "+xml_path, "Внимание ошибка", Alert.OK );
        setInfoText("Ошибка при загрузке Play list'a");
        stopAll();
    };
    setInfoText("Play list загружен успешно");
};

function initStyles():Void{
  _global.style.setStyle("themeColor", "haloOrange");
    playList.multipleSelection = false;

  seekBar.trayClip="seekBarTray";
  seekBar.min = 0;
  seekBar.valueActual = 0;

  volumeBar.trayClip="volumeBarTray"
  volumeBar.min = 0;
  volumeBar.max = 100;
  volumeBar.valueActual = 100;
};

function setInfoText(information:String):Void{
    infoText.text=information;
}
function checkPlaying():Void{
    var seconds:Number=Math.round(sound.position/1000);
    var minutes:Number = Math.floor(seconds/60);

    var textSeconds:String = (seconds<10) ? "0"+String(seconds) : String(seconds);
    var textMinutes:String = (minutes<10) ? "0"+String(minutes) : String(minutes);

    if(seconds>60){
      textSeconds=String(seconds%60);
    }
    seekBar.max=(sound.duration/1000);
    seekBar.valueActual = seconds;
    timeText.text=textMinutes+ ":"+textSeconds;
    setInfoText(currentFileName+" ("+textMinutes+ ":"+textSeconds+")");
}
function checkLoading():Void{
    var loaded:Number=100*Math.round(sound.getBytesLoaded()/sound.getBytesLoaded())
    if(!isNaN(loaded)){
      setInfoText(currentFileName+" : " +loaded+ " %");
    }else{
      stopAll();
    };
    if(sound.getBytesLoaded()==sound.getBytesLoaded()){
      clearInterval(loadingIntervalID);
    }
}

function stopAll():Void{
      timeText.text="00:00"
      setInfoText("");
      clearInterval(loadingIntervalID);
      clearInterval(playingIntervalID);
      fileInfoButton.enabled=false;
      seekBar.valueActual = 0;
}

помогите со скриптом кнопок play stop pause ?:)

iNils 18.11.2006 16:18

JuNkitsME, для оформления своего кода, надо использовать теги [code][/code].
Не исправите, закрою это безобразие.

MAOz 27.10.2007 20:34

fr есть такой исходник???


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

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