Récuperer une valeur d'un onData, parser un fichier srt

Récuperer une valeur d'un onData, parser un fichier srt - Flash/ActionScript - Programmation

Marsh Posté le 24-04-2009 à 15:11:04    

     Bonjour, je tiens à m'excuser d'avance si je n'ai pas trouvé la solution ou tout simplement un topic sur le sujet mais je vous assure que j'ai cherché avant de venir poster une question ici..
 
Voilà cela fait quelques jours que je cherche une solution pour parser efficacement un fichier srt afin de gérer des sous titres dans un player flash.
 
Mon problème survient dans le fait de récupérer une valeur que je traite dans mon onData, impossible de récupérer la valeur de "subtitles".
 
Voilà je vous met un petit bout de code, du moins celui qui correspond et si vous avez une idée sur la manière de procéder ou dans le pire des cas si vous avez une autre méthode à me proposer... Je suis preneur.
 
Code:
 
// Gestion des sous-titres
function Soustitres(){
 // Nom de la video
    var file="video/videoMagasin.flv";
 
 var vSrt:LoadVars = new LoadVars();
        vSrt.load(file.substr(0, file.length-3)+"srt",vSrt,"GET" );
        vSrt.onData = function(src:String) {
         
            if (src != undefined) {
                src = src.split("\r\n" ).join("\n" );
                subtitles = src.split("\n\n" );
                     
                for (var i=0; i<subtitles.length; i++) {
       
                   var detail:Array = subtitles[i].split("\n" );
                   var id:Number = Number(detail.shift());
                   var time:String = String(detail.shift());
                   var timeDetail:Array = time.split(" --> " );
                   var timeStart:Array = timeDetail[0].split("," )[0].split(":" ).concat(timeDetail[0].split("," )[1]);
                   var timeStartHour:Number = Number(timeStart[0]);
                   var timeStartMinute:Number = Number(timeStart[1]);
                   var timeStartSecond:Number = Number(timeStart[2]);
                   var timeStartMilli:Number = Number(timeStart[3]);
                   var timeEnd:Array = timeDetail[1].split("," )[0].split(":" ).concat(timeDetail[1].split("," )[1]);
                   var timeEndHour:Number = Number(timeEnd[0]);
                   var timeEndMinute:Number = Number(timeEnd[1]);
                   var timeEndSecond:Number = Number(timeEnd[2]);
                   var timeEndMilli:Number = Number(timeEnd[3]);
                   var subtext:String = detail.join("\n" );
                   
                  //trace(timeEndSecond);
    //trace(timeStartSecond);
    //trace(subtext);

                   subtitles[i] = {id:id, subtext:subtext,  
                                    timeStart:timeStartHour*60*60*1000+timeStartMinute*60*1000+timeStartSecond*1000+timeStartMilli,  
                           timeEnd:timeEndHour*60*60*1000+timeEndMinute*60*1000+timeEndSecond*1000+timeEndMilli};
     //trace(subtitles[i].timeStart);
     //trace (typeof subtitles[i]);

     }
                 
     
    }  
            };
             
}
 
 
function getSubtitle():String
    {Soustitres();  
 
        for ( i=0; i<subtitles.length; i++) {
   
            if (ns.time*1000+millisecond >= subtitles[i].timeStart && ns.time*1000+millisecond <= subtitles[i].timeEnd) {
                _root.txt_sous_titres = subtitles[i].subtext;
            }
        }
        return "";
    }
     
 getSubtitle();

Reply

Marsh Posté le 24-04-2009 à 15:11:04   

Reply

Marsh Posté le 08-05-2009 à 11:45:21    

Quand tu fais des trace sur SRC et SUBTITLES ca donne quoi ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed