Ignore:
Timestamp:
07/21/10 11:32:50 (3 years ago)
Author:
pablo
Message:

Searches into Zip files if skin XML manifest is incorrectly named (972)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/skins/ZIPSkin.as

    r753 r1165  
    4141                        _zipFile = new ZipFile(data); 
    4242                        try { 
    43                                 var zipEntry:ZipEntry = _zipFile.getEntry(_urlPrefix + '.xml'); 
     43                                var zipEntry:ZipEntry = getXMLEntry(_zipFile, _urlPrefix); 
    4444                                if (!zipEntry) { 
    45                                         zipEntry =  _zipFile.getEntry(_urlPrefix+'/'+_urlPrefix + '.xml'); 
    46                                 } else { 
    47                                         _urlPrefix = null; 
     45                                        sendError("No XML file found in skin ZIP"); 
     46                                        return; 
    4847                                } 
     48                                _urlPrefix = zipEntry.name.substring(0, zipEntry.name.lastIndexOf('/'));  
    4949                                _skinXML = XML(String(_zipFile.getInput(zipEntry))); 
    5050                                parseSkin(); 
     
    5252                                sendError(e.message); 
    5353                        } 
     54                } 
     55                 
     56                protected function getXMLEntry(file:ZipFile, prefix:String=""):ZipEntry { 
     57                        var entry:ZipEntry = file.getEntry(prefix + '.xml'); 
     58                        if (entry) { return entry; } 
     59                         
     60                        entry = file.getEntry(prefix + '/' + prefix + '.xml'); 
     61                        if (entry) { return entry; } 
     62                         
     63                        for each (entry in file.entries) { 
     64                                if (Strings.extension(entry.name) == "xml") { 
     65                                        if (XML(String(file.getInput(entry))).localName() == "skin") { 
     66                                                return entry; 
     67                                        } 
     68                                } 
     69                        } 
     70                         
     71                        return null; 
    5472                } 
    5573 
Note: See TracChangeset for help on using the changeset viewer.