mi problema es el siguiente, un caja de texto no carga todo el texto enviado por las variables, unicamente llena las iniciales de la oración.
el código es este
Código:
la función se llama private function onID3(event:Event):void, todo esto esta en un archivo .as package { import flash.media.*; import flash.net.*; import flash.display.*; import flash.events.*; import flash.display.MovieClip; import flash.text.TextField; import flash.text.TextFormat; import flash.events.Event; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.media.ID3Info import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; import flash.media.SoundLoaderContext; import flash.net.URLRequest; import flash.utils.Timer; import flash.net.URLLoader; import flash.xml.XMLDocument; import flash.events.ErrorEvent; import flash.display.SimpleButton; import flash.geom.Rectangle; import flash.filters.GlowFilter; import com.everydayflash.equalizer.*; import com.everydayflash.equalizer.color.*; public class Mp3Player extends MovieClip { // track variables private var _channel:SoundChannel; private var _sound:Sound; private var _position:int; private var _length:int; private var _loaded:int; private var _total:int; private var _currentPosition:uint; private var _repeat:Boolean; private var buffer:SoundLoaderContext; // spectrum /*private var _spectrum:Spectrum; private var _spectrum2:Spectrum;*/ // xml variables var xmlFileLoc:String = "playlistClassic.xml"; private var urlLoader:URLLoader; private var cNodes:Array; private static var data:XML; // application variables private var timer:Timer = new Timer(20); private var currentTrack:uint; private var isPlaying:Boolean; private var dragOn:Boolean; private var seekerBound:Rectangle;//for track scrubber private var volumeBound:Rectangle;//for volume scrubber private var panBound:Rectangle;//for panning private var isLoading:Boolean; private var glowOn:GlowFilter = new GlowFilter(0xffffff,1,5,5,2,2,false,false); private var glowOff:GlowFilter = new GlowFilter(0xffffff,0,5,5,2,2,false,false); public function Mp3Player() { buffer = new SoundLoaderContext(5000); // track seeker / scrubber seekerBound = new Rectangle(0,tBar.tBarKnob.y,tBar.tBarBg.width,0);// boundary so scrubber will stay within the tBarBg tBar.addEventListener(MouseEvent.MOUSE_DOWN, trackingOn); stage.addEventListener(MouseEvent.MOUSE_UP, trackingOff); // back and forward buttons btnForward.addEventListener(MouseEvent.CLICK, nextTrack); btnBack.addEventListener(MouseEvent.CLICK, prevTrack); // Create the Stop, Play and Pause buttons playPauseButton.addEventListener(MouseEvent.CLICK, togglePlay); btnStop.addEventListener(MouseEvent.CLICK, stopTrack); // _repeat button _repeat = false; btnRepeat.addEventListener(MouseEvent.CLICK, toggleRepeat); btnRepeat.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnRepeat.addEventListener(MouseEvent.MOUSE_OUT, btnOut); // initialize xml xmlLoader(); // spectrum display /*_spectrum = new Spectrum(); _spectrum.x = 524; _spectrum.y = 385; addChild(_spectrum); setChildIndex(_spectrum, 1);*/ // Volume Controls volumeBound = new Rectangle(0,vBar.vBarKnob.y,vBar.vBarBg.width,0);// boundary so volume will stay within the vBarBg vBar.addEventListener(MouseEvent.MOUSE_DOWN, volumeMouseDown); vBar.vBarKnob.x = vBar.vBarBg.width; // Panning Controls panBound = new Rectangle(0,pBar.pBarKnob.y,pBar.pBarBg.width,0);// boundary so panning will stay within the pBarBg pBar.addEventListener(MouseEvent.MOUSE_DOWN, panMouseDown); pBar.pBarKnob.x = pBar.pBarBg.width / 2; } // track scrubber private function trackingOn(evt:Event):void { //tBar.tBarKnob.startDrag(false,seekerBound); dragOn = false;//prevents accidental clicks //tBar.tBarKnob.filters = [glowOn]; } // when mouse is up after clicking any scrubber private function trackingOff(evt:Event):void { if (evt.target.name == "playPauseButton") { } else { tBar.tBarKnob.stopDrag(); vBar.vBarKnob.stopDrag(); pBar.pBarKnob.stopDrag(); tBar.tBarKnob.filters = [glowOff]; vBar.vBarKnob.filters = [glowOff]; pBar.pBarKnob.filters = [glowOff]; if (isPlaying == true) { if (dragOn == true) { _channel.stop(); _channel = _sound.play(_length / 100 * Math.floor(tBar.tBarKnob.x/(tBar.tBarBg.width)*100)); dragOn = false; } } else {// if not playing dragOn = false; _currentPosition = _length / 100 * Math.floor(tBar.tBarKnob.x/(tBar.tBarBg.width)*100); } } } public function xmlLoader():void { var URL:String = xmlFileLoc; var urlRequest:URLRequest = new URLRequest(URL); urlLoader = new URLLoader(); urlLoader.addEventListener("complete", onLoaded); urlLoader.addEventListener("ioerror", ifFailed); urlLoader.load(urlRequest); } private function onLoaded(event:Event):void { data = XML(urlLoader.data); parseData(data); // Starts playing on run -- isLoading = true; timer.addEventListener(TimerEvent.TIMER, onTimer); timer.start() currentTrack = Math.floor(Math.random() * (4 - 1 + 1)) + 1; loadTrack(currentTrack,0); _channel = _sound.play(); _sound.addEventListener(Event.ID3, onID3); isPlaying = true; } private function ifFailed(errorEvent:ErrorEvent):void { txtDisplay.text = "XML Load Fail"; } private function nextTrack(evt:Event):void { if (isPlaying == false) { isPlaying = true; } currentTrack = 0; if (currentTrack > cNodes.length - 1) {// if is the last track loadTrack(0,0);//play the first track currentTrack = 0; } else {// if its not the last track loadTrack(currentTrack,0);//play the next track } } private function prevTrack(evt:Event):void { if (isPlaying == false) { isPlaying = true; } _channel.stop(); if (currentTrack == 0) { //if at first track, play last track loadTrack(cNodes.length - 1,0); currentTrack = cNodes.length - 1; } else { currentTrack--; loadTrack(currentTrack,0); } } public function loadTrack(i:uint,pos:int):void { var data:XML = Mp3Player.data; var _mp3:String = data.mp3[i].url;//mp3 is the tag name in the xml file _sound = new Sound(new URLRequest(_mp3), buffer); _sound.addEventListener(Event.ID3, onID3); _channel = _sound.play(pos); _channel.stop(); var es:EqualizerSettings = new EqualizerSettings(); es.numOfBars = 50; es.height = 80; es.barSize = 8; es.vgrid = true; es.hgrid = 5; es.colorManager = new SolidBarColor(0xfffff00788F); //es.effect = EqualizerSettings.FX_REFLECTION; var e:Equalizer = new Equalizer(); e.update(es); e.x = 310; e.y = 240; addChild(e); addEventListener(Event.ENTER_FRAME, e.render); } private function togglePlay(evt:Event):void { // If playing, stop and save that position if (isPlaying == true) { _channel.stop(); isPlaying = false; _currentPosition = _position; } else { // Else, start at the saved position _channel = _sound.play(_currentPosition); isPlaying = true; } } private function onID3(event:Event):void { var soInfo:ID3Info = ID3Info(_sound.id3); txtDisplay.autoSize = "left"; txtDisplay.multiline = true; txtDisplay.wordWrap = true; txtDisplay.text = "Artist:\t" + soInfo.artist + "\n"; trace(soInfo.artist + " : " + soInfo.track); trace("track: " + soInfo.track); trace("comment: " + soInfo.comment); trace("songName: " + soInfo.songName); trace("album: " + soInfo.album); trace("genre: " + soInfo.genre); trace("year: " + soInfo.year); } private function onTimer(event:TimerEvent):void { _channel.soundTransform = new SoundTransform(vBar.vBarKnob.x / vBar.vBarBg.width, -1 + 2 * (pBar.pBarKnob.x / pBar.pBarBg.width)); _loaded = _sound.bytesLoaded;// loaded bytes _total = _sound.bytesTotal;// total bytes _length = _sound.length;// total _length of track in miliseconds // show loading % if (_loaded < _total) { txtLoaded.text = Math.floor(_loaded / _total *100).toString() + "%"; isLoading = true; } else { txtLoaded.text = ""; isLoading = false; } if (_total > 0) {// if mp3 is successfully loaded tBar.tBarLoad.width = 185 * _loaded / _total; tBar.tBarBg.width = 172 * _loaded / _total; seekerBound = new Rectangle(0,2.5,tBar.tBarLoad.width-12,0);// boundary so scrubber will stay within the tBarBg _position = _channel.position;// current position off track in miliseconds if (dragOn == true) { _position = _length * tBar.tBarKnob.x / tBar.tBarBg.width; updateTimeDisplay(); } else { if (isPlaying == false) { } else { tBar.tBarKnob.x = tBar.tBarBg.width/100 * Math.floor(_position / _length*100); updateTimeDisplay(); } } //_spectrum.update(); //end of track if (dragOn == true) { } else { if (isLoading == false) { if (Math.ceil(_position / 1000) >= Math.floor(_length / 1000) && isPlaying == true) { if (_repeat == true) { _channel.stop(); currentTrack = Math.floor(Math.random() * (4 - 1 + 1)) + 1; } else { currentTrack = Math.floor(Math.random() * (4 - 1 + 1)) + 1; _channel.stop(); if (currentTrack > cNodes.length - 1) { //last track, play first track loadTrack(0,0);//comment away to default no action currentTrack = 0; } else { loadTrack(currentTrack,0); } } } } } } else { isLoading = true; txtTime.text = "0:00"; txtDisplay.text = "Cargando.."; } } private function updateTimeDisplay() { var minutes:Number = Math.floor(_position / 1000) / 60 >> 0; var seconds:Number = Math.floor(_position / 1000) % 60 >> 0; // track time display if ( seconds >= 0 && seconds < 10) { txtTime.text = minutes.toString() + ":0" + seconds.toString(); } else { txtTime.text = minutes.toString() + ":" + seconds.toString(); } } } }